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/Installs/UnInstallActivityTests.cs

88lines · 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 UnInstallActivityTests
10{
11 private readonly App _app = new();
12 private readonly IToken _token = Globals.Token;
13 private readonly Controller _controller = new();
14
15 public UnInstallActivityTests()
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.OnUnInstall(context =>
34 {
35 calls++;
36 Assert.True(context.Activity.Type.IsInstallUpdate);
37 Assert.Equal(InstallUpdateAction.Remove, context.Activity.Action);
38 return Task.CompletedTask;
39 });
40
41 var res = await _app.Process<TestPlugin>(_token, new InstallUpdateActivity()
42 {
43 Action = InstallUpdateAction.Remove
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.OnUnInstall(context =>
58 {
59 calls++;
60 Assert.True(context.Activity.Type.IsInstallUpdate);
61 Assert.Equal(InstallUpdateAction.Remove, context.Activity.Action);
62 return Task.CompletedTask;
63 });
64
65 var res = await _app.Process<TestPlugin>(_token, new InstallUpdateActivity()
66 {
67 Action = InstallUpdateAction.Add
68 });
69
70 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
71 Assert.Equal(0, calls);
72 Assert.Equal(0, _controller.Calls);
73 Assert.Equal(0, res.Meta.Routes);
74 }
75
76 [TeamsController]
77 public class Controller
78 {
79 public int Calls { get; private set; } = 0;
80
81 [UnInstall]
82 public void OnUnInstall([Context] IContext.Next next)
83 {
84 Calls++;
85 next();
86 }
87 }
88}