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/MessageExtensions/FetchTaskActivityMEActivityTests.cs

139lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Invokes;
5using Microsoft.Teams.Api.MessageExtensions;
6
7using static Microsoft.Teams.Api.Activities.Invokes.MessageExtensions;
8
9namespace Microsoft.Teams.Api.Tests.Activities.Invokes;
10
11public class FetchTaskActivityMEActivityTests
12{
13 private static readonly JsonSerializerOptions CachedJsonSerializerOptions = new JsonSerializerOptions()
14 {
15 WriteIndented = true,
16 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
17 };
18
19 private static FetchTaskActivity SetupFetchTaskActivity()
20 {
21 return new FetchTaskActivity()
22 {
23 Value = new Api.MessageExtensions.Action()
24 {
25 CommandContext = Commands.Context.Compose,
26 CommandId = "commandId",
27 BotMessagePreviewAction = MessagePreviewAction.Send,
28 MessagePayload = new Messages.Message()
29 {
30 Id = "messageId",
31 From = new Messages.From(),
32 Subject = "subject",
33 Body = new Messages.Body()
34 {
35 ContentType = new ContentType("text"),
36 Content = "content",
37 },
38 },
39 Context = new TaskModules.RequestContext()
40 {
41 Theme = "dark-theme",
42 },
43 Data = new Dictionary<string, object>()
44 {
45 { "key1", "value1" },
46 { "key2", "value2" }
47 },
48 }
49 };
50 }
51
52 [Fact]
53 public void FetchTaskMEActivity_JsonSerialize()
54 {
55 var activity = SetupFetchTaskActivity();
56
57 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
58
59 string expectedPath = "Activity.Invoke.ComposeExtension/fetchTask";
60 Assert.Equal(expectedPath, activity.GetPath());
61 Assert.Equal(File.ReadAllText(
62 @"../../../Json/Activity/Invokes/FetchTaskMEActivity.json"
63 ), json);
64 }
65
66 [Fact]
67 public void FetchTaskMEActivity_JsonSerialize_Derived()
68 {
69 MessageExtensionActivity activity = SetupFetchTaskActivity();
70
71 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
72
73 string expectedPath = "Activity.Invoke.ComposeExtension/fetchTask";
74 Assert.Equal(expectedPath, activity.GetPath());
75 Assert.Equal(File.ReadAllText(
76 @"../../../Json/Activity/Invokes/FetchTaskMEActivity.json"
77 ), json);
78 }
79
80 [Fact]
81 public void FetchTaskMEActivity_JsonSerialize_Derived_Interface()
82 {
83 InvokeActivity activity = SetupFetchTaskActivity();
84
85 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
86
87 string expectedPath = "Activity.Invoke.ComposeExtension/fetchTask";
88 Assert.Equal(expectedPath, activity.GetPath());
89 Assert.Equal(File.ReadAllText(
90 @"../../../Json/Activity/Invokes/FetchTaskMEActivity.json"
91 ), json);
92 }
93
94 [Fact]
95 public void FetchTaskMEActivity_JsonDeserialize()
96 {
97 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/FetchTaskMEActivity.json");
98 var activity = JsonSerializer.Deserialize<FetchTaskActivity>(json, CachedJsonSerializerOptions);
99 var expected = SetupFetchTaskActivity();
100 Assert.Equal(expected.ToString(), activity!.ToString());
101
102 var expectedSubmitException = "Unable to cast object of type 'FetchTaskActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
103 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
104 Assert.Equal(expectedSubmitException, ex.Message);
105 }
106
107 [Fact]
108 public void FetchTaskMEActivityJsonDeserialize_Derived()
109 {
110 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/FetchTaskMEActivity.json");
111 var activity = JsonSerializer.Deserialize<MessageExtensionActivity>(json, CachedJsonSerializerOptions);
112 var expected = SetupFetchTaskActivity();
113
114 Assert.NotNull(activity);
115 Assert.Equal(expected.ToString(), activity.ToString());
116 }
117
118 [Fact]
119 public void FetchTaskMEActivity_JsonDeserialize_Derived_Interface()
120 {
121 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/FetchTaskMEActivity.json");
122 var activity = JsonSerializer.Deserialize<InvokeActivity>(json, CachedJsonSerializerOptions);
123 var expected = SetupFetchTaskActivity();
124
125 Assert.NotNull(activity);
126 Assert.Equal(expected.ToString(), activity.ToString());
127 }
128
129 [Fact]
130 public void FetchTaskMEActivity_JsonDeserialize_Derived_Activity_Interface()
131 {
132 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/FetchTaskMEActivity.json");
133 var activity = JsonSerializer.Deserialize<Activity>(json, CachedJsonSerializerOptions);
134 var expected = SetupFetchTaskActivity();
135
136 Assert.NotNull(activity);
137 Assert.Equal(expected.ToString(), activity.ToString());
138 }
139}