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

142lines · 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 CardButtonClickedMEActivityTests
12{
13 private CardButtonClickedActivity SetupCardButtonClickedActivity()
14 {
15 var anyValueObject = new Parameter()
16 {
17 Name = "Somelist",
18 Value = "Toronto"
19 };
20 return new CardButtonClickedActivity()
21 {
22 Value = anyValueObject,
23 Conversation = new Api.Conversation()
24 {
25 Id = "19:someid",
26 Type = ConversationType.Personal
27 },
28 ServiceUrl = "https://url-value"
29 };
30 }
31
32 [Fact]
33 public void CardButtonClickedMEActivity_JsonSerialize()
34 {
35 var activity = SetupCardButtonClickedActivity();
36
37 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
38 {
39 WriteIndented = true,
40 IndentSize = 2,
41 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
42 });
43
44 string expectedPath = "Activity.Invoke.ComposeExtension/onCardButtonClicked";
45 Assert.Equal(expectedPath, activity.GetPath());
46 Assert.Equal(File.ReadAllText(
47 @"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json"
48 ), json);
49 }
50
51 [Fact]
52 public void CardButtonClickedMEActivity_JsonSerialize_Derived()
53 {
54 MessageExtensionActivity activity = SetupCardButtonClickedActivity();
55
56 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
57 {
58 WriteIndented = true,
59 IndentSize = 2,
60 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
61 });
62
63 string expectedPath = "Activity.Invoke.ComposeExtension/onCardButtonClicked";
64 Assert.Equal(expectedPath, activity.GetPath());
65 Assert.Equal(File.ReadAllText(
66 @"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json"
67 ), json);
68 }
69
70 [Fact]
71 public void CardButtonClickedMEActivity_JsonSerialize_Derived_Interface()
72 {
73 InvokeActivity activity = SetupCardButtonClickedActivity();
74
75 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
76 {
77 WriteIndented = true,
78 IndentSize = 2,
79 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
80 });
81
82 string expectedPath = "Activity.Invoke.ComposeExtension/onCardButtonClicked";
83 Assert.Equal(expectedPath, activity.GetPath());
84 Assert.Equal(File.ReadAllText(
85 @"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json"
86 ), json);
87 }
88
89 [Fact]
90 public void CardButtonClickedMEActivity_JsonDeserialize()
91 {
92 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json");
93 var activity = JsonSerializer.Deserialize<CardButtonClickedActivity>(json);
94 Assert.NotNull(activity); // Ensure activity is not null before dereferencing
95 var expected = SetupCardButtonClickedActivity();
96
97 Assert.Equal(expected.ToString(), activity!.ToString()); // Use null-forgiving operator
98 Assert.NotNull(activity.ToMessageExtension());
99 string expectedPath = "Activity.Invoke.ComposeExtension/onCardButtonClicked";
100 Assert.Equal(expectedPath, activity.GetPath());
101 }
102
103 [Fact]
104 public void CardButtonClickedMEActivity_JsonDeserialize_Derived()
105 {
106 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json");
107 var activity = JsonSerializer.Deserialize<MessageExtensionActivity>(json);
108 Assert.NotNull(activity); // Ensure activity is not null before dereferencing
109 var expected = SetupCardButtonClickedActivity();
110
111 Assert.Equal(expected.ToString(), activity!.ToString()); // Use null-forgiving operator
112 Assert.NotNull(activity.ToMessageExtension());
113 var expectedSubmitException = "Unable to cast object of type 'CardButtonClickedActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
114 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
115 Assert.Equal(expectedSubmitException, ex.Message);
116 }
117
118 [Fact]
119 public void CardButtonClickedMEActivity_JsonDeserialize_Derived_Interface()
120 {
121 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json");
122 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
123 Assert.NotNull(activity); // Ensure activity is not null before dereferencing
124 var expected = SetupCardButtonClickedActivity();
125
126 Assert.Equal(expected.ToString(), activity!.ToString()); // Use null-forgiving operator
127 Assert.NotNull(activity.ToMessageExtension());
128 }
129
130 [Fact]
131 public void CardButtonClickedMEActivity_JsonDeserialize_Derived_Activity_Interface()
132 {
133 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/CardButtonClickedMEActivity.json");
134 var activity = JsonSerializer.Deserialize<Activity>(json);
135 Assert.NotNull(activity); // Ensure activity is not null before dereferencing
136 var expected = SetupCardButtonClickedActivity();
137
138 Assert.Equal(expected.ToString(), activity!.ToString()); // Use null-forgiving operator
139 string expectedPath = "Activity.Invoke.ComposeExtension/onCardButtonClicked";
140 Assert.Equal(expectedPath, activity.GetPath());
141 }
142}