microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
next/core-activitybuilder

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Apps.Tests/Activities/Conversations/Channels/ChannelMemberAddedActivityTests.cs

95lines · 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
9[Obsolete]
10public class ChannelMemberAddedActivityTests
11{
12 private readonly App _app = new();
13 private readonly IToken _token = Globals.Token;
14 private readonly Controller _controller = new();
15
16 public ChannelMemberAddedActivityTests()
17 {
18 _app.AddPlugin(new TestPlugin());
19 _app.AddController(_controller);
20 }
21
22 [Fact]
23 public async Task Should_CallHandler()
24 {
25 var calls = 0;
26
27 _app.OnActivity(context =>
28 {
29 calls++;
30 Assert.True(context.Activity.Type.IsConversationUpdate);
31 return context.Next();
32 });
33
34 _app.OnChannelMemberAdded(context =>
35 {
36 calls++;
37 Assert.True(context.Activity.Type.IsConversationUpdate);
38 Assert.Equal(ConversationUpdateActivity.EventType.ChannelMemberAdded, context.Activity.ChannelData?.EventType);
39 return Task.CompletedTask;
40 });
41
42 var res = await _app.Process<TestPlugin>(_token, new ConversationUpdateActivity()
43 {
44 ChannelData = new()
45 {
46 EventType = ConversationUpdateActivity.EventType.ChannelMemberAdded
47 }
48 });
49
50 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
51 Assert.Equal(2, calls);
52 Assert.Equal(1, _controller.Calls);
53 Assert.Equal(3, res.Meta.Routes);
54 }
55
56 [Fact]
57 public async Task Should_Not_CallHandler()
58 {
59 var calls = 0;
60
61 _app.OnChannelMemberAdded(context =>
62 {
63 calls++;
64 Assert.True(context.Activity.Type.IsConversationUpdate);
65 return Task.CompletedTask;
66 });
67
68 var res = await _app.Process<TestPlugin>(_token, new ConversationUpdateActivity()
69 {
70 ChannelData = new()
71 {
72 EventType = ConversationUpdateActivity.EventType.ChannelDeleted
73 }
74 });
75
76 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
77 Assert.Equal(0, calls);
78 Assert.Equal(0, _controller.Calls);
79 Assert.Equal(0, res.Meta.Routes);
80 }
81
82 [TeamsController]
83 [Obsolete]
84 public class Controller
85 {
86 public int Calls { get; private set; } = 0;
87
88 [Conversation.ChannelMemberAdded]
89 public void OnChannelMemberAdded([Context] IContext.Next next)
90 {
91 Calls++;
92 next();
93 }
94 }
95}