microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
samples/migration-bot

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Apps.Tests/Activities/Invokes/AdaptiveCards/ActionActivityTests.cs

96lines · modecode

1using Microsoft.Teams.Api.Activities;
2using Microsoft.Teams.Api.Activities.Invokes;
3using Microsoft.Teams.Api.AdaptiveCards;
4using Microsoft.Teams.Api.Auth;
5using Microsoft.Teams.Apps.Activities;
6using Microsoft.Teams.Apps.Activities.Invokes;
7using Microsoft.Teams.Apps.Annotations;
8using Microsoft.Teams.Apps.Testing.Plugins;
9
10namespace Microsoft.Teams.Apps.Tests.Activities;
11
12public class AdaptiveCardsActionActivityTests
13{
14 private readonly App _app = new();
15 private readonly IToken _token = Globals.Token;
16 private readonly Controller _controller = new();
17
18 public AdaptiveCardsActionActivityTests()
19 {
20 _app.AddPlugin(new TestPlugin());
21 _app.AddController(_controller);
22 }
23
24 [Fact]
25 public async Task Should_CallHandler()
26 {
27 var calls = 0;
28
29 _app.OnActivity(context =>
30 {
31 calls++;
32 Assert.True(context.Activity.Type.IsInvoke);
33 Assert.True(((Activity)context.Activity).ToInvoke().Name.IsAdaptiveCard);
34 return context.Next();
35 });
36
37 _app.OnAdaptiveCardAction(context =>
38 {
39 calls++;
40 Assert.True(context.Activity.Type.IsInvoke);
41 Assert.True(context.Activity.Name.IsAdaptiveCard);
42 Assert.True(context.Activity.Name == Name.AdaptiveCards.Action);
43 return Task.FromResult<object?>(null);
44 });
45
46 var res = await _app.Process<TestPlugin>(_token, new AdaptiveCards.ActionActivity()
47 {
48 Value = new()
49 {
50 Action = new()
51 {
52 Type = ActionType.Submit
53 }
54 }
55 });
56
57 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
58 Assert.Equal(2, calls);
59 Assert.Equal(1, _controller.Calls);
60 Assert.Equal(3, res.Meta.Routes);
61 }
62
63 [Fact]
64 public async Task Should_Not_CallHandler()
65 {
66 var calls = 0;
67
68 _app.OnAdaptiveCardAction(context =>
69 {
70 calls++;
71 Assert.True(context.Activity.Type.IsInvoke);
72 Assert.True(context.Activity.Name.IsAdaptiveCard);
73 return Task.FromResult<object?>(null);
74 });
75
76 var res = await _app.Process<TestPlugin>(_token, new TypingActivity());
77
78 Assert.Equal(System.Net.HttpStatusCode.OK, res.Status);
79 Assert.Equal(0, calls);
80 Assert.Equal(0, _controller.Calls);
81 Assert.Equal(0, res.Meta.Routes);
82 }
83
84 [TeamsController]
85 public class Controller
86 {
87 public int Calls { get; private set; } = 0;
88
89 [AdaptiveCard.Action]
90 public void OnAction([Context] IContext.Next next)
91 {
92 Calls++;
93 next();
94 }
95 }
96}