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

158lines · 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 SubmitActionMEActivityTests
12{
13 private SubmitActionActivity SetupSubmitActionActivity()
14 {
15 return new SubmitActionActivity()
16 {
17 Value = new Api.MessageExtensions.Action()
18 {
19 CommandContext = Commands.Context.Message,
20 CommandId = "commandId",
21 BotMessagePreviewAction = MessagePreviewAction.Edit,
22 MessagePayload = new Messages.Message()
23 {
24 Id = "messageId",
25 From = new Messages.From(),
26 Subject = "subject",
27 Body = new Messages.Body()
28 {
29 ContentType = new ContentType("application/vnd.microsoft.card.adaptive"),
30 Content = "<adaptive card content json>",
31 TextContent = "text content",
32
33 },
34 },
35 Context = new TaskModules.RequestContext()
36 {
37 Theme = "default",
38 },
39 Data = new Dictionary<string, object>()
40 {
41 { "id", "submitButton" },
42 { "formField1", "formField1value" },
43 { "formField2", "formField2value" }
44 },
45 },
46 Conversation = new Api.Conversation()
47 {
48 Id = "conversationId",
49 Type = ConversationType.Personal
50 },
51 };
52 }
53
54 [Fact]
55 public void SubmitActionMEActivity_JsonSerialize()
56 {
57 var activity = SetupSubmitActionActivity();
58
59 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
60 {
61 WriteIndented = true,
62 IndentSize = 2,
63 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
64 });
65
66 string expectedPath = "Activity.Invoke.ComposeExtension/submitAction";
67 Assert.Equal(expectedPath, activity.GetPath());
68 Assert.Equal(File.ReadAllText(
69 @"../../../Json/Activity/Invokes/SubmitActionMEActivity.json"
70 ), json);
71 }
72
73 [Fact]
74 public void SubmitActionMEActivity_JsonSerialize_Derived()
75 {
76 MessageExtensionActivity activity = SetupSubmitActionActivity();
77
78 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
79 {
80 WriteIndented = true,
81 IndentSize = 2,
82 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
83 });
84
85 string expectedPath = "Activity.Invoke.ComposeExtension/submitAction";
86 Assert.Equal(expectedPath, activity.GetPath());
87 Assert.Equal(File.ReadAllText(
88 @"../../../Json/Activity/Invokes/SubmitActionMEActivity.json"
89 ), json);
90 }
91
92 [Fact]
93 public void SubmitActionMEActivity_JsonSerialize_Derived_Interface()
94 {
95 InvokeActivity activity = SetupSubmitActionActivity();
96
97 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
98 {
99 WriteIndented = true,
100 IndentSize = 2,
101 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
102 });
103
104 string expectedPath = "Activity.Invoke.ComposeExtension/submitAction";
105 Assert.Equal(expectedPath, activity.GetPath());
106 Assert.Equal(File.ReadAllText(
107 @"../../../Json/Activity/Invokes/SubmitActionMEActivity.json"
108 ), json);
109 }
110
111 [Fact]
112 public void SubmitActionMEActivity_JsonDeserialize()
113 {
114 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SubmitActionMEActivity.json");
115 var activity = JsonSerializer.Deserialize<SubmitActionActivity>(json);
116 var expected = SetupSubmitActionActivity();
117
118 Assert.Equal(expected.ToString(), activity!.ToString());
119 Assert.NotNull(activity.ToMessageExtension());
120
121 var expectedSubmitException = "Unable to cast object of type 'SubmitActionActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
122 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
123 Assert.Equal(expectedSubmitException, ex.Message);
124 }
125
126 [Fact]
127 public void SubmitActionMEActivityJsonDeserialize_Derived()
128 {
129 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SubmitActionMEActivity.json");
130 var activity = JsonSerializer.Deserialize<MessageExtensionActivity>(json);
131 var expected = SetupSubmitActionActivity();
132
133 Assert.NotNull(activity);
134 Assert.Equal(expected.ToString(), activity.ToString());
135 }
136
137 [Fact]
138 public void SubmitActionMEActivity_JsonDeserialize_Derived_Interface()
139 {
140 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SubmitActionMEActivity.json");
141 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
142 var expected = SetupSubmitActionActivity();
143
144 Assert.NotNull(activity);
145 Assert.Equal(expected.ToString(), activity.ToString());
146 }
147
148 [Fact]
149 public void SubmitActionMEActivity_JsonDeserialize_Derived_Activity_Interface()
150 {
151 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/SubmitActionMEActivity.json");
152 var activity = JsonSerializer.Deserialize<Activity>(json);
153 var expected = SetupSubmitActionActivity();
154
155 Assert.NotNull(activity);
156 Assert.Equal(expected.ToString(), activity.ToString());
157 }
158}