microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fix/msal-agentic-cache

Branches

Tags

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

Clone

HTTPS

Download ZIP

Tests/Microsoft.Teams.Api.Tests/Activities/Invokes/TaskInvokeActivityTests.cs

316lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Invokes;
5
6using static Microsoft.Teams.Api.Activities.Invokes.Tasks;
7
8namespace Microsoft.Teams.Api.Tests.Activities;
9
10public class TaskInvokeActivityTests
11{
12 private FetchActivity setupFetchTaskActivity()
13 {
14 return new FetchActivity()
15 {
16 Value = new TaskModules.Request()
17 {
18 Data = new Dictionary<string, object>()
19 {
20 { "key", "value" },
21 },
22 Context = new TaskModules.RequestContext()
23 {
24 Theme = "default",
25 },
26 },
27 Conversation = new Api.Conversation()
28 {
29 Id = "conversationIdString",
30 Type = ConversationType.GroupChat,
31 },
32 From = new Account()
33 {
34 Id = "fromIdString",
35 Name = "fromNameString",
36 AadObjectId = "fromAadObjectIdString",
37 Role = Role.Bot,
38 },
39 Recipient = new Account()
40 {
41 Id = "recipientIdString",
42 Name = "recipientNameString",
43 },
44 ChannelData = new ChannelData()
45 {
46 Channel = new Channel()
47 {
48 Id = "channelIdString",
49 Name = "channelNameString",
50 },
51 Team = new Team()
52 {
53 Id = "teamIdString",
54 Name = "teamNameString",
55 },
56 },
57 Locale = "en-en",
58 ServiceUrl = "fakeServiceUrl",
59 Properties = new Dictionary<string, object?>()
60 {
61 { "key", "value" },
62 },
63 };
64 }
65
66 private SubmitActivity setupSubmitTaskActivity()
67 {
68 return new SubmitActivity()
69 {
70 Value = new TaskModules.Request()
71 {
72 Data = new Dictionary<string, object>()
73 {
74 { "key", "value" },
75 },
76 Context = new TaskModules.RequestContext()
77 {
78 Theme = "default",
79 },
80 },
81 Conversation = new Api.Conversation()
82 {
83 Id = "conversationIdString",
84 Type = ConversationType.GroupChat,
85 },
86 From = new Account()
87 {
88 Id = "fromIdString",
89 Name = "fromNameString",
90 AadObjectId = "fromAadObjectIdString",
91 Role = Role.Bot,
92 },
93 Recipient = new Account()
94 {
95 Id = "recipientIdString",
96 Name = "recipientNameString",
97 },
98 ChannelData = new ChannelData()
99 {
100 Channel = new Channel()
101 {
102 Id = "channelIdString",
103 Name = "channelNameString",
104 },
105 Team = new Team()
106 {
107 Id = "teamIdString",
108 Name = "teamNameString",
109 },
110 },
111 Locale = "en-en",
112 ServiceUrl = "fakeServiceUrl",
113 Properties = new Dictionary<string, object?>()
114 {
115 { "key", "value" },
116 },
117 };
118 }
119
120 [Fact]
121 public void TaskFetchActivity_Props()
122 {
123 var activity = new FetchActivity()
124 {
125 Value = new TaskModules.Request()
126 {
127 Data = new Dictionary<string, object>()
128 {
129 { "key", "value" },
130 },
131 Context = new TaskModules.RequestContext()
132 {
133 Theme = "default",
134 },
135 },
136
137 };
138
139 var expectedSubmitException = "Unable to cast object of type 'FetchActivity' to type 'SubmitActivity'.";
140
141 Assert.NotNull(activity.ToFetch());
142 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToSubmit());
143 Assert.Equal(expectedSubmitException, ex.Message);
144 }
145
146 [Fact]
147 public void TaskFetchActivity_JsonSerialize()
148 {
149 var activity = setupFetchTaskActivity();
150
151 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
152 {
153 WriteIndented = true,
154 IndentSize = 2,
155 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
156 });
157
158 Assert.Equal(File.ReadAllText(
159 @"../../../Json/Activity/Invokes/TaskFetchActivity.json"
160 ), json);
161 }
162
163 [Fact]
164 public void TaskFetchActivity_JsonSerialize_Derived()
165 {
166 TaskActivity activity = setupFetchTaskActivity();
167
168 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
169 {
170 WriteIndented = true,
171 IndentSize = 2,
172 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
173 });
174
175 Assert.Equal(File.ReadAllText(
176 @"../../../Json/Activity/Invokes/TaskFetchActivity.json"
177 ), json);
178 }
179
180 [Fact]
181 public void TaskFetchActivity_JsonSerialize_Interface_Derived()
182 {
183 Activity activity = setupFetchTaskActivity();
184
185 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
186 {
187 WriteIndented = true,
188 IndentSize = 2,
189 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
190 });
191
192 Assert.Equal(File.ReadAllText(
193 @"../../../Json/Activity/Invokes/TaskFetchActivity.json"
194 ), json);
195 }
196
197 [Fact]
198 public void TaskFetchActivity_JsonDeserialize()
199 {
200 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/TaskFetchActivity.json");
201 var activity = JsonSerializer.Deserialize<FetchActivity>(json);
202 var expected = setupFetchTaskActivity();
203 Assert.Equal(expected.ToString(), activity?.ToString());
204 }
205
206 [Fact]
207 public void TaskFetchActivity_JsonDeserialize_Derived()
208 {
209 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/TaskFetchActivity.json");
210 var activity = JsonSerializer.Deserialize<TaskActivity>(json);
211 var expected = setupFetchTaskActivity();
212
213 Assert.NotNull(activity);
214 Assert.Equal(expected.ToString(), activity.ToString());
215 }
216
217 [Fact]
218 public void TaskSubmitActivity_Props()
219 {
220 var activity = new SubmitActivity()
221 {
222 Value = new TaskModules.Request()
223 {
224 Data = new Dictionary<string, object>()
225 {
226 { "key", "value" },
227 },
228 Context = new TaskModules.RequestContext()
229 {
230 Theme = "default",
231 },
232 },
233
234 };
235
236 var expectedSubmitException = "Unable to cast object of type 'SubmitActivity' to type 'FetchActivity'.";
237
238 Assert.NotNull(activity.ToSubmit());
239 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToFetch());
240 Assert.Equal(expectedSubmitException, ex.Message);
241 }
242
243 [Fact]
244 public void TaskSubmitActivity_JsonSerialize()
245 {
246 var activity = setupSubmitTaskActivity();
247
248 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
249 {
250 WriteIndented = true,
251 IndentSize = 2,
252 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
253 });
254
255 Assert.Equal(File.ReadAllText(
256 @"../../../Json/Activity/Invokes/TaskSubmitActivity.json"
257 ), json);
258 }
259
260 [Fact]
261 public void TaskSubmitActivity_JsonSerialize_Derived()
262 {
263 TaskActivity activity = setupSubmitTaskActivity();
264
265 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
266 {
267 WriteIndented = true,
268 IndentSize = 2,
269 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
270 });
271
272 Assert.Equal(File.ReadAllText(
273 @"../../../Json/Activity/Invokes/TaskSubmitActivity.json"
274 ), json);
275 }
276
277 [Fact]
278 public void TaskSubmitActivity_JsonSerialize_Interface_Derived()
279 {
280 Activity activity = setupSubmitTaskActivity();
281
282 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
283 {
284 WriteIndented = true,
285 IndentSize = 2,
286 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
287 });
288
289 Assert.Equal(File.ReadAllText(
290 @"../../../Json/Activity/Invokes/TaskSubmitActivity.json"
291 ), json);
292 }
293
294 [Fact]
295 public void TaskSubmitActivity_JsonDeserialize()
296 {
297 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/TaskSubmitActivity.json");
298 var activity = JsonSerializer.Deserialize<FetchActivity>(json);
299 var expected = setupSubmitTaskActivity();
300 Assert.Equal(expected.ToString(), activity?.ToString());
301 }
302
303 [Fact]
304 public void TaskSubmitActivity_JsonDeserialize_Derived()
305 {
306 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/TaskSubmitActivity.json");
307 var activity = JsonSerializer.Deserialize<TaskActivity>(json);
308 var expected = setupSubmitTaskActivity();
309
310 Assert.NotNull(activity);
311 Assert.Equal(expected.ToString(), activity.ToString());
312 }
313
314}