|
51 | 51 | import java.util.concurrent.atomic.AtomicReference; |
52 | 52 |
|
53 | 53 | public class TeamsActivityHandlerTests { |
| 54 | + @Test |
| 55 | + public void TestConversationUpdateBotTeamsMemberAdded() { |
| 56 | + String baseUri = "https://test.coffee"; |
| 57 | + ConnectorClient connectorClient = getConnectorClient( |
| 58 | + "http://localhost/", |
| 59 | + MicrosoftAppCredentials.empty() |
| 60 | + ); |
| 61 | + |
| 62 | + Activity activity = new Activity(ActivityTypes.CONVERSATION_UPDATE) { |
| 63 | + { |
| 64 | + setMembersAdded(new ArrayList<ChannelAccount>() { |
| 65 | + { |
| 66 | + add(new ChannelAccount("botid-1")); |
| 67 | + } |
| 68 | + }); |
| 69 | + setRecipient(new ChannelAccount("botid-1")); |
| 70 | + setChannelData(new TeamsChannelData() { |
| 71 | + { |
| 72 | + setEventType("teamMemberAdded"); |
| 73 | + setTeam(new TeamInfo("team-id")); |
| 74 | + } |
| 75 | + }); |
| 76 | + setChannelId(Channels.MSTEAMS); |
| 77 | + } |
| 78 | + }; |
| 79 | + |
| 80 | + TurnContext turnContext = new TurnContextImpl(new SimpleAdapter(), activity); |
| 81 | + turnContext.getTurnState().add(BotFrameworkAdapter.CONNECTOR_CLIENT_KEY, connectorClient); |
| 82 | + |
| 83 | + TestActivityHandler bot = new TestActivityHandler(); |
| 84 | + bot.onTurn(turnContext).join(); |
| 85 | + |
| 86 | + Assert.assertEquals(2, bot.record.size()); |
| 87 | + Assert.assertEquals("onConversationUpdateActivity", bot.record.get(0)); |
| 88 | + Assert.assertEquals("onTeamsMembersAdded", bot.record.get(1)); |
| 89 | + } |
| 90 | + |
54 | 91 | @Test |
55 | 92 | public void TestConversationUpdateTeamsMemberAdded() { |
56 | 93 | String baseUri = "https://test.coffee"; |
@@ -100,7 +137,7 @@ public void TestConversationUpdateTeamsMemberAddedNoTeam() { |
100 | 137 | { |
101 | 138 | setMembersAdded(new ArrayList<ChannelAccount>() { |
102 | 139 | { |
103 | | - add(new ChannelAccount("id-3")); |
| 140 | + add(new ChannelAccount("id-1")); |
104 | 141 | } |
105 | 142 | }); |
106 | 143 | setRecipient(new ChannelAccount("b")); |
@@ -1272,6 +1309,72 @@ private static ConnectorClient getConnectorClient(String baseUri, AppCredentials |
1272 | 1309 | }) |
1273 | 1310 | ); |
1274 | 1311 |
|
| 1312 | + // getConversationMember (Team) |
| 1313 | + Mockito.when(mockConversations.getConversationMember("id-1", "team-id")).thenReturn( |
| 1314 | + CompletableFuture.completedFuture( |
| 1315 | + new ChannelAccount() { |
| 1316 | + { |
| 1317 | + setId("id-1"); |
| 1318 | + setName("name-1"); |
| 1319 | + setProperties( |
| 1320 | + "objectId", |
| 1321 | + JsonNodeFactory.instance.textNode("objectId-1") |
| 1322 | + ); |
| 1323 | + setProperties( |
| 1324 | + "givenName", |
| 1325 | + JsonNodeFactory.instance.textNode("givenName-1") |
| 1326 | + ); |
| 1327 | + setProperties( |
| 1328 | + "surname", |
| 1329 | + JsonNodeFactory.instance.textNode("surname-1") |
| 1330 | + ); |
| 1331 | + setProperties("email", JsonNodeFactory.instance.textNode("email-1")); |
| 1332 | + setProperties( |
| 1333 | + "userPrincipalName", |
| 1334 | + JsonNodeFactory.instance.textNode("userPrincipalName-1") |
| 1335 | + ); |
| 1336 | + setProperties( |
| 1337 | + "tenantId", |
| 1338 | + JsonNodeFactory.instance.textNode("tenantId-1") |
| 1339 | + ); |
| 1340 | + } |
| 1341 | + } |
| 1342 | + ) |
| 1343 | + ); |
| 1344 | + |
| 1345 | + // getConversationMember (Group chat) |
| 1346 | + Mockito.when(mockConversations.getConversationMember("id-1", "conversation-id")).thenReturn( |
| 1347 | + CompletableFuture.completedFuture( |
| 1348 | + new ChannelAccount() { |
| 1349 | + { |
| 1350 | + setId("id-1"); |
| 1351 | + setName("name-1"); |
| 1352 | + setProperties( |
| 1353 | + "objectId", |
| 1354 | + JsonNodeFactory.instance.textNode("objectId-1") |
| 1355 | + ); |
| 1356 | + setProperties( |
| 1357 | + "givenName", |
| 1358 | + JsonNodeFactory.instance.textNode("givenName-1") |
| 1359 | + ); |
| 1360 | + setProperties( |
| 1361 | + "surname", |
| 1362 | + JsonNodeFactory.instance.textNode("surname-1") |
| 1363 | + ); |
| 1364 | + setProperties("email", JsonNodeFactory.instance.textNode("email-1")); |
| 1365 | + setProperties( |
| 1366 | + "userPrincipalName", |
| 1367 | + JsonNodeFactory.instance.textNode("userPrincipalName-1") |
| 1368 | + ); |
| 1369 | + setProperties( |
| 1370 | + "tenantId", |
| 1371 | + JsonNodeFactory.instance.textNode("tenantId-1") |
| 1372 | + ); |
| 1373 | + } |
| 1374 | + } |
| 1375 | + ) |
| 1376 | + ); |
| 1377 | + |
1275 | 1378 | ConnectorClient mockConnectorClient = Mockito.mock(ConnectorClient.class); |
1276 | 1379 | Mockito.when(mockConnectorClient.getConversations()).thenReturn(mockConversations); |
1277 | 1380 | Mockito.when(mockConnectorClient.baseUrl()).thenReturn(baseUri); |
|
0 commit comments