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/TypingActivityTests.cs

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