Skip to content
This repository was archived by the owner on Dec 4, 2023. It is now read-only.

Commit 35c0fff

Browse files
committed
Added TeamsActivityHandlerNotImplementedTests
1 parent 99cab6f commit 35c0fff

File tree

1 file changed

+335
-0
lines changed

1 file changed

+335
-0
lines changed
Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,335 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.microsoft.bot.builder.teams;
5+
6+
import com.microsoft.bot.builder.ActivityHandler;
7+
import com.microsoft.bot.builder.InvokeResponse;
8+
import com.microsoft.bot.builder.SimpleAdapter;
9+
import com.microsoft.bot.builder.TurnContext;
10+
import com.microsoft.bot.builder.TurnContextImpl;
11+
import com.microsoft.bot.schema.Activity;
12+
import com.microsoft.bot.schema.ActivityTypes;
13+
import com.microsoft.bot.schema.teams.AppBasedLinkQuery;
14+
import com.microsoft.bot.schema.teams.FileConsentCardResponse;
15+
import com.microsoft.bot.schema.teams.FileUploadInfo;
16+
import com.microsoft.bot.schema.teams.MessagingExtensionAction;
17+
import com.microsoft.bot.schema.teams.MessagingExtensionActionResponse;
18+
import com.microsoft.bot.schema.teams.MessagingExtensionQuery;
19+
import com.microsoft.bot.schema.teams.O365ConnectorCardActionQuery;
20+
import com.microsoft.bot.schema.teams.TaskModuleRequest;
21+
import com.microsoft.bot.schema.teams.TaskModuleRequestContext;
22+
import org.junit.Assert;
23+
import org.junit.Test;
24+
25+
import java.util.HashMap;
26+
import java.util.List;
27+
import java.util.concurrent.CompletableFuture;
28+
import java.util.concurrent.atomic.AtomicReference;
29+
30+
public class TeamsActivityHandlerNotImplementedTests {
31+
@Test
32+
public void TestInvoke() {
33+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
34+
setName("gibberish");
35+
}};
36+
37+
assertNotImplemented(activity);
38+
}
39+
40+
@Test
41+
public void TestFileConsentAccept() {
42+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
43+
setName("fileConsent/invoke");
44+
setValue(new FileConsentCardResponse() {{
45+
setAction("accept");
46+
setUploadInfo(new FileUploadInfo() {{
47+
setUniqueId("uniqueId");
48+
setFileType("fileType");
49+
setUploadUrl("uploadUrl");
50+
}});
51+
}});
52+
}};
53+
54+
assertNotImplemented(activity);
55+
}
56+
57+
@Test
58+
public void TestFileConsentDecline() {
59+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
60+
setName("fileConsent/invoke");
61+
setValue(new FileConsentCardResponse() {{
62+
setAction("decline");
63+
setUploadInfo(new FileUploadInfo() {{
64+
setUniqueId("uniqueId");
65+
setFileType("fileType");
66+
setUploadUrl("uploadUrl");
67+
}});
68+
}});
69+
}};
70+
71+
assertNotImplemented(activity);
72+
}
73+
74+
@Test
75+
public void TestActionableMessageExecuteAction() {
76+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
77+
setName("actionableMessage/executeAction");
78+
setValue(new O365ConnectorCardActionQuery());
79+
}};
80+
81+
assertNotImplemented(activity);
82+
}
83+
84+
@Test
85+
public void TestComposeExtensionQueryLink() {
86+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
87+
setName("composeExtension/queryLink");
88+
setValue(new AppBasedLinkQuery());
89+
}};
90+
91+
assertNotImplemented(activity);
92+
}
93+
94+
@Test
95+
public void TestComposeExtensionQuery() {
96+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
97+
setName("composeExtension/query");
98+
setValue(new MessagingExtensionQuery());
99+
}};
100+
101+
assertNotImplemented(activity);
102+
}
103+
104+
@Test
105+
public void TestMessagingExtensionSelectItem() {
106+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
107+
setName("composeExtension/selectItem");
108+
setValue(new O365ConnectorCardActionQuery());
109+
}};
110+
111+
assertNotImplemented(activity);
112+
}
113+
114+
@Test
115+
public void TestMessagingExtensionSubmitAction() {
116+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
117+
setName("composeExtension/submitAction");
118+
setValue(new MessagingExtensionQuery());
119+
}};
120+
121+
assertNotImplemented(activity);
122+
}
123+
124+
@Test
125+
public void TestMessagingExtensionSubmitActionPreviewActionEdit() {
126+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
127+
setName("composeExtension/submitAction");
128+
setValue(new MessagingExtensionAction() {{
129+
setBotMessagePreviewAction("edit");
130+
}});
131+
}};
132+
133+
assertNotImplemented(activity);
134+
}
135+
136+
@Test
137+
public void TestMessagingExtensionSubmitActionPreviewActionSend() {
138+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
139+
setName("composeExtension/submitAction");
140+
setValue(new MessagingExtensionAction() {{
141+
setBotMessagePreviewAction("send");
142+
}});
143+
}};
144+
145+
assertNotImplemented(activity);
146+
}
147+
148+
@Test
149+
public void TestMessagingExtensionFetchTask() {
150+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
151+
setName("composeExtension/fetchTask");
152+
setValue(new MessagingExtensionAction() {{
153+
setCommandId("testCommand");
154+
}});
155+
}};
156+
157+
assertNotImplemented(activity);
158+
}
159+
160+
@Test
161+
public void TestMessagingExtensionConfigurationQuerySettingsUrl() {
162+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
163+
setName("composeExtension/querySettingsUrl");
164+
}};
165+
166+
assertNotImplemented(activity);
167+
}
168+
169+
@Test
170+
public void TestMessagingExtensionConfigurationSetting() {
171+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
172+
setName("composeExtension/setting");
173+
}};
174+
175+
assertNotImplemented(activity);
176+
}
177+
178+
@Test
179+
public void TestTaskModuleFetch() {
180+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
181+
setName("task/fetch");
182+
setValue(new TaskModuleRequest() {{
183+
setData(new HashMap<String, Object>() {{
184+
put("key", "value");
185+
put("type", "task / fetch");
186+
}});
187+
setContext(new TaskModuleRequestContext() {{
188+
setTheme("default");
189+
}});
190+
}});
191+
}};
192+
193+
assertNotImplemented(activity);
194+
}
195+
196+
@Test
197+
public void TestTaskModuleSubmit() {
198+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
199+
setName("task/submit");
200+
setValue(new TaskModuleRequest() {{
201+
setData(new HashMap<String, Object>() {{
202+
put("key", "value");
203+
put("type", "task / fetch");
204+
}});
205+
setContext(new TaskModuleRequestContext() {{
206+
setTheme("default");
207+
}});
208+
}});
209+
}};
210+
211+
assertNotImplemented(activity);
212+
}
213+
214+
@Test
215+
public void TestFileConsentAcceptImplemented() {
216+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
217+
setName("fileConsent/invoke");
218+
setValue(new FileConsentCardResponse() {{
219+
setAction("accept");
220+
setUploadInfo(new FileUploadInfo() {{
221+
setUniqueId("uniqueId");
222+
setFileType("fileType");
223+
setUploadUrl("uploadUrl");
224+
}});
225+
}});
226+
}};
227+
228+
assertImplemented(activity, new TestActivityHandlerFileConsent());
229+
}
230+
231+
@Test
232+
public void TestFileConsentDeclineImplemented() {
233+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
234+
setName("fileConsent/invoke");
235+
setValue(new FileConsentCardResponse() {{
236+
setAction("decline");
237+
setUploadInfo(new FileUploadInfo() {{
238+
setUniqueId("uniqueId");
239+
setFileType("fileType");
240+
setUploadUrl("uploadUrl");
241+
}});
242+
}});
243+
}};
244+
245+
assertImplemented(activity, new TestActivityHandlerFileConsent());
246+
}
247+
248+
@Test
249+
public void TestMessagingExtensionSubmitActionPreviewActionEditImplemented() {
250+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
251+
setName("composeExtension/submitAction");
252+
setValue(new MessagingExtensionAction() {{
253+
setBotMessagePreviewAction("edit");
254+
}});
255+
}};
256+
257+
assertImplemented(activity, new TestActivityHandlerPrevieAction());
258+
}
259+
260+
@Test
261+
public void TestMessagingExtensionSubmitActionPreviewActionSendImplemented() {
262+
Activity activity = new Activity(ActivityTypes.INVOKE) {{
263+
setName("composeExtension/submitAction");
264+
setValue(new MessagingExtensionAction() {{
265+
setBotMessagePreviewAction("send");
266+
}});
267+
}};
268+
269+
assertImplemented(activity, new TestActivityHandlerPrevieAction());
270+
}
271+
272+
private void assertNotImplemented(Activity activity) {
273+
assertInvokeResponse(activity, new TestActivityHandler(), 501);
274+
}
275+
276+
private void assertImplemented(Activity activity, ActivityHandler bot) {
277+
assertInvokeResponse(activity, bot,200);
278+
}
279+
280+
private void assertInvokeResponse(Activity activity, ActivityHandler bot, int expectedStatus) {
281+
AtomicReference<List<Activity>> activitiesToSend = new AtomicReference<>();
282+
283+
TurnContext turnContext = new TurnContextImpl(
284+
new SimpleAdapter(activitiesToSend::set),
285+
activity
286+
);
287+
288+
bot.onTurn(turnContext).join();
289+
290+
Assert.assertNotNull(activitiesToSend.get());
291+
Assert.assertEquals(1, activitiesToSend.get().size());
292+
Assert.assertTrue(activitiesToSend.get().get(0).getValue() instanceof InvokeResponse);
293+
Assert.assertEquals(expectedStatus, ((InvokeResponse) activitiesToSend.get().get(0).getValue()).getStatus());
294+
}
295+
296+
private static class TestActivityHandler extends TeamsActivityHandler {
297+
298+
}
299+
300+
private static class TestActivityHandlerFileConsent extends TeamsActivityHandler {
301+
@Override
302+
protected CompletableFuture<Void> onTeamsFileConsentAccept(
303+
TurnContext turnContext,
304+
FileConsentCardResponse fileConsentCardResponse
305+
) {
306+
return CompletableFuture.completedFuture(null);
307+
}
308+
309+
@Override
310+
protected CompletableFuture<Void> onTeamsFileConsentDecline(TurnContext turnContext,
311+
FileConsentCardResponse fileConsentCardResponse
312+
) {
313+
return CompletableFuture.completedFuture(null);
314+
}
315+
}
316+
317+
private static class TestActivityHandlerPrevieAction extends TeamsActivityHandler {
318+
319+
@Override
320+
protected CompletableFuture<MessagingExtensionActionResponse> onTeamsMessagingExtensionBotMessagePreviewEdit(
321+
TurnContext turnContext,
322+
MessagingExtensionAction action
323+
) {
324+
return CompletableFuture.completedFuture(new MessagingExtensionActionResponse());
325+
}
326+
327+
@Override
328+
protected CompletableFuture<MessagingExtensionActionResponse> onTeamsMessagingExtensionBotMessagePreviewSend(
329+
TurnContext turnContext,
330+
MessagingExtensionAction action
331+
) {
332+
return CompletableFuture.completedFuture(new MessagingExtensionActionResponse());
333+
}
334+
}
335+
}

0 commit comments

Comments
 (0)