|
34 | 34 | TabContext,
|
35 | 35 | MeetingParticipantsEventDetails,
|
36 | 36 | ReadReceiptInfo,
|
| 37 | + TeamsChannelData, |
37 | 38 | )
|
38 | 39 | from botframework.connector import Channels
|
39 | 40 | from simple_adapter import SimpleAdapter
|
@@ -351,6 +352,26 @@ async def on_teams_meeting_end_event(
|
351 | 352 | turn_context.activity.value, turn_context
|
352 | 353 | )
|
353 | 354 |
|
| 355 | + async def on_message_update_activity(self, turn_context: TurnContext): |
| 356 | + self.record.append("on_message_update_activity") |
| 357 | + return await super().on_message_update_activity(turn_context) |
| 358 | + |
| 359 | + async def on_teams_message_edit(self, turn_context: TurnContext): |
| 360 | + self.record.append("on_teams_message_edit") |
| 361 | + return await super().on_teams_message_edit(turn_context) |
| 362 | + |
| 363 | + async def on_teams_message_undelete(self, turn_context: TurnContext): |
| 364 | + self.record.append("on_teams_message_undelete") |
| 365 | + return await super().on_teams_message_undelete(turn_context) |
| 366 | + |
| 367 | + async def on_message_delete_activity(self, turn_context: TurnContext): |
| 368 | + self.record.append("on_message_delete_activity") |
| 369 | + return await super().on_message_delete_activity(turn_context) |
| 370 | + |
| 371 | + async def on_teams_message_soft_delete(self, turn_context: TurnContext): |
| 372 | + self.record.append("on_teams_message_soft_delete") |
| 373 | + return await super().on_teams_message_soft_delete(turn_context) |
| 374 | + |
354 | 375 | async def on_teams_meeting_participants_join_event(
|
355 | 376 | self, meeting: MeetingParticipantsEventDetails, turn_context: TurnContext
|
356 | 377 | ):
|
@@ -1254,6 +1275,124 @@ async def test_on_teams_meeting_end_event(self):
|
1254 | 1275 | assert bot.record[0] == "on_event_activity"
|
1255 | 1276 | assert bot.record[1] == "on_teams_meeting_end_event"
|
1256 | 1277 |
|
| 1278 | + async def test_message_update_activity_teams_message_edit(self): |
| 1279 | + # Arrange |
| 1280 | + activity = Activity( |
| 1281 | + type=ActivityTypes.message_update, |
| 1282 | + channel_data=TeamsChannelData(event_type="editMessage"), |
| 1283 | + channel_id=Channels.ms_teams, |
| 1284 | + ) |
| 1285 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1286 | + |
| 1287 | + # Act |
| 1288 | + bot = TestingTeamsActivityHandler() |
| 1289 | + await bot.on_turn(turn_context) |
| 1290 | + |
| 1291 | + # Assert |
| 1292 | + self.assertEqual(2, len(bot.record)) |
| 1293 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1294 | + self.assertEqual("on_teams_message_edit", bot.record[1]) |
| 1295 | + |
| 1296 | + async def test_message_update_activity_teams_message_undelete(self): |
| 1297 | + # Arrange |
| 1298 | + activity = Activity( |
| 1299 | + type=ActivityTypes.message_update, |
| 1300 | + channel_data=TeamsChannelData(event_type="undeleteMessage"), |
| 1301 | + channel_id=Channels.ms_teams, |
| 1302 | + ) |
| 1303 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1304 | + |
| 1305 | + # Act |
| 1306 | + bot = TestingTeamsActivityHandler() |
| 1307 | + await bot.on_turn(turn_context) |
| 1308 | + |
| 1309 | + # Assert |
| 1310 | + self.assertEqual(2, len(bot.record)) |
| 1311 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1312 | + self.assertEqual("on_teams_message_undelete", bot.record[1]) |
| 1313 | + |
| 1314 | + async def test_message_update_activity_teams_message_undelete_no_msteams(self): |
| 1315 | + # Arrange |
| 1316 | + activity = Activity( |
| 1317 | + type=ActivityTypes.message_update, |
| 1318 | + channel_data=TeamsChannelData(event_type="undeleteMessage"), |
| 1319 | + ) |
| 1320 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1321 | + |
| 1322 | + # Act |
| 1323 | + bot = TestingTeamsActivityHandler() |
| 1324 | + await bot.on_turn(turn_context) |
| 1325 | + |
| 1326 | + # Assert |
| 1327 | + self.assertEqual(1, len(bot.record)) |
| 1328 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1329 | + |
| 1330 | + async def test_message_update_activity_teams_no_channel_data(self): |
| 1331 | + # Arrange |
| 1332 | + activity = Activity( |
| 1333 | + type=ActivityTypes.message_update, |
| 1334 | + channel_id=Channels.ms_teams, |
| 1335 | + ) |
| 1336 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1337 | + |
| 1338 | + # Act |
| 1339 | + bot = TestingTeamsActivityHandler() |
| 1340 | + await bot.on_turn(turn_context) |
| 1341 | + |
| 1342 | + # Assert |
| 1343 | + self.assertEqual(1, len(bot.record)) |
| 1344 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1345 | + |
| 1346 | + async def test_message_delete_activity_teams_message_soft_delete(self): |
| 1347 | + # Arrange |
| 1348 | + activity = Activity( |
| 1349 | + type=ActivityTypes.message_delete, |
| 1350 | + channel_data=TeamsChannelData(event_type="softDeleteMessage"), |
| 1351 | + channel_id=Channels.ms_teams, |
| 1352 | + ) |
| 1353 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1354 | + |
| 1355 | + # Act |
| 1356 | + bot = TestingTeamsActivityHandler() |
| 1357 | + await bot.on_turn(turn_context) |
| 1358 | + |
| 1359 | + # Assert |
| 1360 | + self.assertEqual(2, len(bot.record)) |
| 1361 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1362 | + self.assertEqual("on_teams_message_soft_delete", bot.record[1]) |
| 1363 | + |
| 1364 | + async def test_message_delete_activity_teams_message_soft_delete_no_msteams(self): |
| 1365 | + # Arrange |
| 1366 | + activity = Activity( |
| 1367 | + type=ActivityTypes.message_delete, |
| 1368 | + channel_data=TeamsChannelData(event_type="softDeleteMessage"), |
| 1369 | + ) |
| 1370 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1371 | + |
| 1372 | + # Act |
| 1373 | + bot = TestingTeamsActivityHandler() |
| 1374 | + await bot.on_turn(turn_context) |
| 1375 | + |
| 1376 | + # Assert |
| 1377 | + self.assertEqual(1, len(bot.record)) |
| 1378 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1379 | + |
| 1380 | + async def test_message_delete_activity_teams_no_channel_data(self): |
| 1381 | + # Arrange |
| 1382 | + activity = Activity( |
| 1383 | + type=ActivityTypes.message_delete, |
| 1384 | + channel_id=Channels.ms_teams, |
| 1385 | + ) |
| 1386 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1387 | + |
| 1388 | + # Act |
| 1389 | + bot = TestingTeamsActivityHandler() |
| 1390 | + await bot.on_turn(turn_context) |
| 1391 | + |
| 1392 | + # Assert |
| 1393 | + self.assertEqual(1, len(bot.record)) |
| 1394 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1395 | + |
1257 | 1396 | async def test_on_teams_meeting_participants_join_event(self):
|
1258 | 1397 | # arrange
|
1259 | 1398 | activity = Activity(
|
|
0 commit comments