microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
next/core

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Api.Tests/Activities/Invokes/SignIn/TokenExchangeSignInActivityTests.cs

152lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Invokes;
5using Microsoft.Teams.Api.SignIn;
6
7using static Microsoft.Teams.Api.Activities.Invokes.SignIn;
8
9namespace Microsoft.Teams.Api.Tests.Activities.Invokes;
10
11public class TokenExchangeSignInActivityTests
12{
13 private TokenExchangeActivity SetupSignInTokenExchangeActivity()
14 {
15 return new TokenExchangeActivity()
16 {
17 Value = new ExchangeToken()
18 {
19 Id = "tokenExchangeId",
20 ConnectionName = "connection Name",
21 Token = "token"
22 },
23 Conversation = new Api.Conversation()
24 {
25 Id = "conversationId",
26 Type = ConversationType.GroupChat
27 },
28 From = new Account()
29 {
30 Id = "botId",
31 Name = "User Name",
32 AadObjectId = "aadObjectId"
33 },
34 Recipient = new Account()
35 {
36 Id = "recipientId",
37 Name = "Recipient Name",
38 },
39 };
40 }
41
42 [Fact]
43 public void SignInTokenExchangeActivity_JsonSerialize()
44 {
45 var activity = SetupSignInTokenExchangeActivity();
46
47 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
48 {
49 WriteIndented = true,
50 IndentSize = 2,
51 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
52 });
53
54 string expectedPath = "Activity.Invoke.Signin/tokenExchange";
55 Assert.Equal(expectedPath, activity.GetPath());
56 Assert.NotNull(activity.ToTokenExchange());
57 var expectedSubmitException = "Unable to cast object of type 'TokenExchangeActivity' to type 'VerifyStateActivity'.";
58 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToVerifyState());
59 Assert.Equal(expectedSubmitException, ex.Message);
60 Assert.Equal(File.ReadAllText(
61 @"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json"
62 ), json);
63 }
64
65 [Fact]
66 public void SignInTokenExchangeActivity_JsonSerialize_Derived()
67 {
68 SignInActivity activity = SetupSignInTokenExchangeActivity();
69
70 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
71 {
72 WriteIndented = true,
73 IndentSize = 2,
74 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
75 });
76
77 string expectedPath = "Activity.Invoke.Signin/tokenExchange";
78 Assert.Equal(expectedPath, activity.GetPath());
79 Assert.Equal(File.ReadAllText(
80 @"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json"
81 ), json);
82 }
83
84 [Fact]
85 public void SignInTokenExchangeActivity_JsonSerialize_Derived_Interface()
86 {
87 InvokeActivity activity = SetupSignInTokenExchangeActivity();
88
89 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
90 {
91 WriteIndented = true,
92 IndentSize = 2,
93 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
94 });
95
96 string expectedPath = "Activity.Invoke.Signin/tokenExchange";
97 Assert.Equal(expectedPath, activity.GetPath());
98 Assert.Equal(File.ReadAllText(
99 @"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json"
100 ), json);
101 }
102
103 [Fact]
104 public void SignInTokenExchangeActivity_JsonDeserialize()
105 {
106 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json");
107 var activity = JsonSerializer.Deserialize<TokenExchangeActivity>(json);
108 var expected = SetupSignInTokenExchangeActivity();
109
110 Assert.Equal(expected.ToString(), activity!.ToString());
111 Assert.NotNull(activity.ToTokenExchange());
112
113 var expectedSubmitException = "Unable to cast object of type 'TokenExchangeActivity' to type 'VerifyStateActivity'.";
114 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToVerifyState());
115 Assert.Equal(expectedSubmitException, ex.Message);
116 }
117
118 [Fact]
119 public void SignInTokenExchangeActivity_JsonDeserialize_Derived()
120 {
121 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json");
122 var activity = JsonSerializer.Deserialize<SignInActivity>(json);
123 var expected = SetupSignInTokenExchangeActivity();
124
125 Assert.NotNull(activity);
126 Assert.Equal(expected.ToString(), activity.ToString());
127 Assert.NotNull(activity.ToSignIn());
128
129 }
130
131 [Fact]
132 public void SignInTokenExchangeActivity_JsonDeserialize_Derived_Interface()
133 {
134 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json");
135 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
136 var expected = SetupSignInTokenExchangeActivity();
137
138 Assert.NotNull(activity);
139 Assert.Equal(expected.ToString(), activity.ToString());
140 }
141
142 [Fact]
143 public void SignInTokenExchangeActivity_JsonDeserialize_Derived_Activity_Interface()
144 {
145 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInTokenExchangeActivity.json");
146 var activity = JsonSerializer.Deserialize<Activity>(json);
147 var expected = SetupSignInTokenExchangeActivity();
148
149 Assert.NotNull(activity);
150 Assert.Equal(expected.ToString(), activity.ToString());
151 }
152}