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/Invokes/Configs/SubmitActivityTests.cs

92lines · modecode

1using Microsoft.Teams.Api.Activities;
2using Microsoft.Teams.Api.Activities.Invokes;
3using Microsoft.Teams.Api.Auth;
4using Microsoft.Teams.Apps.Activities;
5using Microsoft.Teams.Apps.Activities.Invokes;
6using Microsoft.Teams.Apps.Annotations;
7using Microsoft.Teams.Apps.Testing.Plugins;
8
9namespace Microsoft.Teams.Apps.Tests.Activities;
10
11public class ConfigsSubmitActionActivityTests
12{
13 private readonly App _app = new();
14 private readonly IToken _token = Globals.Token;
15 private readonly Controller _controller = new();
16
17 public ConfigsSubmitActionActivityTests()
18 {
19 _app.AddPlugin(new TestPlugin());
20 _app.AddController(_controller);
21 }
22
23 [Fact]
24 public async Task Should_CallHandler()
25 {
26 var calls = 0;
27
28 _app.OnActivity(context =>
29 {
30 calls++;
31 Assert.True(context.Activity.Type.IsInvoke);
32 Assert.True(((Activity)context.Activity).ToInvoke().Name.IsConfig);
33 return context.Next();
34 });
35
36 _app.OnConfigSubmit(context =>
37 {
38 calls++;
39 Assert.True(context.Activity.Type.IsInvoke);
40 Assert.True(context.Activity.Name == Name.Configs.Submit);
41 return Task.FromResult<object?>(null);
42 });
43
44 var res = await _app.Process<TestPlugin>(_token, new Configs.SubmitActivity());
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.OnConfigSubmit(context =>
58 {
59 calls++;
60 Assert.True(context.Activity.Type.IsInvoke);
61 Assert.True(context.Activity.Name.IsConfig);
62 return Task.FromResult<object?>(null);
63 });
64
65 var res = await _app.Process<TestPlugin>(_token, new TypingActivity());
66
67 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
68 Assert.Equal(0, calls);
69 Assert.Equal(0, _controller.Calls);
70 Assert.Equal(0, res.Meta.Routes);
71 }
72
73 [TeamsController]
74 public class Controller
75 {
76 public int Calls { get; private set; } = 0;
77
78 [Config.Fetch]
79 public void OnFetch([Context] IContext.Next next)
80 {
81 Calls++;
82 next();
83 }
84
85 [Config.Submit]
86 public void OnSubmit([Context] IContext.Next next)
87 {
88 Calls++;
89 next();
90 }
91 }
92}