microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
docs/update-release-process

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Apps.Tests/Activities/Conversations/Members/MembersAddedActivityTests.cs

87lines · 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 MembersAddedActivityTests
10{
11 private readonly App _app = new();
12 private readonly IToken _token = Globals.Token;
13 private readonly Controller _controller = new();
14
15 public MembersAddedActivityTests()
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.OnMembersAdded(context =>
34 {
35 calls++;
36 Assert.True(context.Activity.Type.IsConversationUpdate);
37 Assert.Single(context.Activity.MembersAdded);
38 return Task.CompletedTask;
39 });
40
41 var res = await _app.Process<TestPlugin>(_token, new ConversationUpdateActivity()
42 {
43 MembersAdded = [new Api.Account() { Id = "test" }]
44 });
45
46 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
47 Assert.Equal(2, calls);
48 Assert.Equal(1, _controller.Calls);
49 Assert.Equal(3, res.Meta.Routes);
50 }
51
52 [Fact]
53 public async Task Should_Not_CallHandler()
54 {
55 var calls = 0;
56
57 _app.OnMembersAdded(context =>
58 {
59 calls++;
60 Assert.True(context.Activity.Type.IsConversationUpdate);
61 return Task.CompletedTask;
62 });
63
64 var res = await _app.Process<TestPlugin>(_token, new ConversationUpdateActivity()
65 {
66 MembersAdded = []
67 });
68
69 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
70 Assert.Equal(0, calls);
71 Assert.Equal(0, _controller.Calls);
72 Assert.Equal(0, res.Meta.Routes);
73 }
74
75 [TeamsController]
76 public class Controller
77 {
78 public int Calls { get; private set; } = 0;
79
80 [Conversation.MembersAdded]
81 public void OnMembersAdded([Context] IContext.Next next)
82 {
83 Calls++;
84 next();
85 }
86 }
87}