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

316lines · modecode

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