microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/close-pull-request

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Apps.Tests/Activities/Conversations/ConversationUpdateActivityTests.cs

80lines · modecode

1using Microsoft.Teams.Api.Activities;
2using Microsoft.Teams.Api.Auth;
3using Microsoft.Teams.Apps.Activities;
4using Microsoft.Teams.Apps.Annotations;
5using Microsoft.Teams.Apps.Testing.Plugins;
6
7namespace Microsoft.Teams.Apps.Tests.Activities;
8
9public class ConversationUpdateActivityTests
10{
11 private readonly App _app = new();
12 private readonly IToken _token = Globals.Token;
13 private readonly Controller _controller = new();
14
15 public ConversationUpdateActivityTests()
16 {
17 _app.AddPlugin(new TestPlugin());
18 _app.AddController(_controller);
19 }
20
21 [Fact]
22 public async Task Should_CallHandler()
23 {
24 var calls = 0;
25
26 _app.OnActivity(context =>
27 {
28 calls++;
29 Assert.True(context.Activity.Type.IsConversationUpdate);
30 return context.Next();
31 });
32
33 _app.OnConversationUpdate(context =>
34 {
35 calls++;
36 Assert.True(context.Activity.Type.IsConversationUpdate);
37 return Task.CompletedTask;
38 });
39
40 var res = await _app.Process<TestPlugin>(_token, new ConversationUpdateActivity());
41
42 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
43 Assert.Equal(2, calls);
44 Assert.Equal(1, _controller.Calls);
45 Assert.Equal(3, res.Meta.Routes);
46 }
47
48 [Fact]
49 public async Task Should_Not_CallHandler()
50 {
51 var calls = 0;
52
53 _app.OnConversationUpdate(context =>
54 {
55 calls++;
56 Assert.True(context.Activity.Type.IsConversationUpdate);
57 return Task.CompletedTask;
58 });
59
60 var res = await _app.Process<TestPlugin>(_token, new EndOfConversationActivity() { Text = "test" });
61
62 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
63 Assert.Equal(0, calls);
64 Assert.Equal(0, _controller.Calls);
65 Assert.Equal(0, res.Meta.Routes);
66 }
67
68 [TeamsController]
69 public class Controller
70 {
71 public int Calls { get; private set; } = 0;
72
73 [Conversation.Update]
74 public void OnConversationUpdate([Context] IContext.Next next)
75 {
76 Calls++;
77 next();
78 }
79 }
80}