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.Api.Tests/Activities/Invokes/SignIn/VerifyStateSignInActivityTests.cs

150lines · 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 VerifyStateSignInActivityTests
12{
13 private VerifyStateActivity SetupSignInValidStateActivity()
14 {
15 return new VerifyStateActivity()
16 {
17 Value = new StateVerifyQuery()
18 {
19 State = "success"
20 },
21 Conversation = new Api.Conversation()
22 {
23 Id = "conversationId",
24 Type = ConversationType.GroupChat
25 },
26 From = new Account()
27 {
28 Id = "botId",
29 Name = "User Name",
30 AadObjectId = "aadObjectId"
31 },
32 Recipient = new Account()
33 {
34 Id = "recipientId",
35 Name = "Recipient Name",
36 },
37 };
38 }
39
40 [Fact]
41 public void setupSignInVerifyStateActivity_JsonSerialize()
42 {
43 var activity = SetupSignInValidStateActivity();
44
45 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
46 {
47 WriteIndented = true,
48 IndentSize = 2,
49 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
50 });
51
52 string expectedPath = "Activity.Invoke.Signin/verifyState";
53 Assert.Equal(expectedPath, activity.GetPath());
54 Assert.NotNull(activity.ToVerifyState());
55 var expectedSubmitException = "Unable to cast object of type 'VerifyStateActivity' to type 'TokenExchangeActivity'.";
56 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTokenExchange());
57 Assert.Equal(expectedSubmitException, ex.Message);
58 Assert.Equal(File.ReadAllText(
59 @"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json"
60 ), json);
61 }
62
63 [Fact]
64 public void setupSignInVerifyStateActivity_JsonSerialize_Derived()
65 {
66 SignInActivity activity = SetupSignInValidStateActivity();
67
68 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
69 {
70 WriteIndented = true,
71 IndentSize = 2,
72 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
73 });
74
75 string expectedPath = "Activity.Invoke.Signin/verifyState";
76 Assert.Equal(expectedPath, activity.GetPath());
77 Assert.Equal(File.ReadAllText(
78 @"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json"
79 ), json);
80 }
81
82 [Fact]
83 public void setupSignInVerifyStateActivity_JsonSerialize_Derived_Interface()
84 {
85 InvokeActivity activity = SetupSignInValidStateActivity();
86
87 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
88 {
89 WriteIndented = true,
90 IndentSize = 2,
91 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
92 });
93
94 string expectedPath = "Activity.Invoke.Signin/verifyState";
95 Assert.Equal(expectedPath, activity.GetPath());
96 Assert.Equal(File.ReadAllText(
97 @"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json"
98 ), json);
99 }
100
101 [Fact]
102 public void setupSignInVerifyStateActivity_JsonDeserialize()
103 {
104 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json");
105 var activity = JsonSerializer.Deserialize<VerifyStateActivity>(json);
106 var expected = SetupSignInValidStateActivity();
107
108 Assert.Equal(expected.ToString(), activity!.ToString());
109 Assert.NotNull(activity.ToVerifyState());
110
111 var expectedSubmitException = "Unable to cast object of type 'VerifyStateActivity' to type 'TokenExchangeActivity'.";
112 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTokenExchange());
113 Assert.Equal(expectedSubmitException, ex.Message);
114 }
115
116 [Fact]
117 public void setupSignInVerifyStateActivity_JsonDeserialize_Derived()
118 {
119 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json");
120 var activity = JsonSerializer.Deserialize<SignInActivity>(json);
121 var expected = SetupSignInValidStateActivity();
122
123 Assert.NotNull(activity);
124 Assert.Equal(expected.ToString(), activity.ToString());
125 Assert.NotNull(activity.ToSignIn());
126
127 }
128
129 [Fact]
130 public void setupSignInVerifyStateActivity_JsonDeserialize_Derived_Interface()
131 {
132 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json");
133 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
134 var expected = SetupSignInValidStateActivity();
135
136 Assert.NotNull(activity);
137 Assert.Equal(expected.ToString(), activity.ToString());
138 }
139
140 [Fact]
141 public void setupSignInVerifyStateActivity_JsonDeserialize_Derived_Activity_Interface()
142 {
143 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SignInVerifyStateActivity.json");
144 var activity = JsonSerializer.Deserialize<Activity>(json);
145 var expected = SetupSignInValidStateActivity();
146
147 Assert.NotNull(activity);
148 Assert.Equal(expected.ToString(), activity.ToString());
149 }
150}