microsoft/teams.net

Public

mirrored fromhttps://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/Installs/InstallUpdateActivityTests.cs

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