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/Conversation/EndOfConversationActivityTests.cs

129lines · modecode

1
2
3using System.Text.Json;
4
5using Microsoft.Teams.Api.Activities;
6
7namespace Microsoft.Teams.Api.Tests.Activities.Conversation;
8
9public class EndOfConversationActivityTests
10{
11 private EndOfConversationActivity SetupEndOfConversationActivity()
12 {
13 return new EndOfConversationActivity()
14 {
15 Code = new EndOfConversationCode("completedSuccessfully"),
16 Text = "The conversation has ended successfully.",
17 ChannelId = new ChannelId("msteams"),
18 Conversation = new Api.Conversation()
19 {
20 Type = new ConversationType("channel"),
21 Id = "someguid",
22 TenantId = "tenantId",
23 Name = "channelName",
24 IsGroup = false,
25
26 },
27 From = new Account()
28 {
29 Id = "botId",
30 Name = "Bot user",
31 Role = new Role("bot"),
32 AadObjectId = "aadObjectId",
33 Properties = new Dictionary<string, object>()
34 {
35 { "key1", "value1" },
36 { "key2", "value2" },
37 },
38 },
39 Recipient = new Account()
40 {
41 Id = "userId1",
42 Name = "User One"
43 },
44 };
45 }
46 [Fact]
47 public void EndOfConversationActivity_Props()
48 {
49 var activity = SetupEndOfConversationActivity();
50
51
52 Assert.NotNull(activity.ToEndOfConversation());
53
54 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.EndOfConversationActivity' to type 'Microsoft.Teams.Api.Activities.ConversationUpdateActivity'.";
55 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToConversationUpdate());
56 Assert.Equal(expectedSubmitException, ex.Message);
57 }
58
59 private static readonly JsonSerializerOptions CachedJsonSerializerOptions = new JsonSerializerOptions
60 {
61 WriteIndented = true,
62 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
63 };
64
65 [Fact]
66 public void EndOfConversationActivity_JsonSerialize()
67 {
68 var activity = SetupEndOfConversationActivity();
69
70 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
71
72 Assert.Equal(File.ReadAllText(
73 @"../../../Json/Activity/Conversation/EndOfConversationActivity.json"
74 ), json);
75 }
76
77 [Fact]
78 public void EndOfConversationActivity_JsonSerialize_Derived_From_Class()
79 {
80 Activity activity = SetupEndOfConversationActivity();
81
82 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
83
84 Assert.Equal(File.ReadAllText(
85 @"../../../Json/Activity/Conversation/EndOfConversationActivity.json"
86 ), json);
87 }
88
89 [Fact]
90 public void EndOfConversationActivity_JsonSerialize_Derived_From_Interface()
91 {
92 IActivity activity = SetupEndOfConversationActivity();
93
94 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
95
96 Assert.Equal(File.ReadAllText(
97 @"../../../Json/Activity/Conversation/EndOfConversationActivity.json"
98 ), json);
99 }
100
101 [Fact]
102 public void EndOfConversationActivity_JsonDeserialize()
103 {
104 var json = File.ReadAllText(@"../../../Json/Activity/Conversation/EndOfConversationActivity.json");
105 var activity = JsonSerializer.Deserialize<EndOfConversationActivity>(json);
106 var expected = SetupEndOfConversationActivity();
107
108 Assert.Equal(expected.ToString(), activity!.ToString());
109 Assert.NotNull(activity.ToEndOfConversation());
110 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.EndOfConversationActivity' to type 'Microsoft.Teams.Api.Activities.ConversationUpdateActivity'.";
111 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToConversationUpdate());
112 Assert.Equal(expectedSubmitException, ex.Message);
113 }
114
115
116 [Fact]
117 public void EndOfConversationActivity_JsonDeserialize_Derived()
118 {
119 var json = File.ReadAllText(@"../../../Json/Activity/Conversation/EndOfConversationActivity.json");
120 var activity = JsonSerializer.Deserialize<Activity>(json);
121 var expected = SetupEndOfConversationActivity();
122
123 Assert.Equal(expected.ToString(), activity!.ToString());
124 Assert.NotNull(activity.ToEndOfConversation());
125 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.EndOfConversationActivity' to type 'Microsoft.Teams.Api.Activities.InstallUpdateActivity'.";
126 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToInstallUpdate());
127 Assert.Equal(expectedSubmitException, ex.Message);
128 }
129}