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/Events/MeetingParticipantJoinActivityTests.cs

190lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Events;
5using Microsoft.Teams.Api.Entities;
6
7using static Microsoft.Teams.Api.Activities.Events.MeetingParticipantJoinActivityValue;
8
9namespace Microsoft.Teams.Api.Tests.Activities.Events;
10
11public class MeetingParticipantJoinActivityTests
12{
13 private static readonly JsonSerializerOptions CachedJsonSerializerOptions = new JsonSerializerOptions()
14 {
15 WriteIndented = true,
16 IndentSize = 2,
17 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
18 };
19
20 public MeetingParticipantJoinActivity SetupMeetingParticipantJoinActivity()
21 {
22 return new MeetingParticipantJoinActivity()
23 {
24 Value = new MeetingParticipantJoinActivityValue()
25 {
26 Members = new List<Member>() {
27 new Member()
28 {
29 User = new Account()
30 {
31 Id = "userId",
32 Name = "userName"
33 },
34 Meeting = new Meeting()
35 {
36 InMeeting = true,
37 Role = Role.User,
38 }
39 },
40 new Member()
41 {
42 User = new Account()
43 {
44 Id = "botId",
45 Name = "BotUser"
46 },
47 Meeting = new Meeting()
48 {
49 InMeeting = true,
50 Role = Role.Bot,
51 }
52 }
53 },
54
55 },
56 Recipient = new Account()
57 {
58 Id = "recipientId",
59 Name = "recipientName"
60 },
61 ChannelId = new ChannelId("msteams"),
62 Entities = new List<IEntity>()
63 {
64 new StreamInfoEntity()
65 {
66 StreamId = "strId",
67 StreamSequence = 3,
68 StreamType = new StreamType("streaming")
69 }
70 },
71
72 };
73 }
74
75 [Fact]
76 public void MeetingParticipantJoinActivity_Props()
77 {
78 var activity = SetupMeetingParticipantJoinActivity();
79
80 Assert.NotNull(activity.ToMeetingParticipantJoin());
81 ActivityType expectedEventType = new ActivityType("event");
82 Assert.Equal(expectedEventType.ToString(), activity.Type.Value);
83 Assert.True(activity.Name.IsMeetingParticipantJoin);
84 Assert.False(activity.Name.IsMeetingStart);
85 Assert.True(activity.IsStreaming);
86 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.Events.MeetingParticipantJoinActivity' to type 'Microsoft.Teams.Api.Activities.MessageActivity'.";
87 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToMessage());
88 Assert.Equal(expectedSubmitException, ex.Message);
89 }
90
91 [Fact]
92 public void MeetingParticipantJoinActivity_JsonSerialize()
93 {
94 var activity = SetupMeetingParticipantJoinActivity();
95
96 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
97
98 Assert.Equal(File.ReadAllText(
99 @"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json"
100 ), json);
101 }
102
103
104 [Fact]
105 public void MeetingParticipantJoinActivity_JsonSerialize_Object()
106 {
107 MeetingParticipantJoinActivity activity = SetupMeetingParticipantJoinActivity();
108
109 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
110
111 string expectedPath = "Activity.Event.Application/vnd.microsoft.meetingParticipantJoin";
112 Assert.Equal(expectedPath, activity.GetPath());
113 Assert.Equal(File.ReadAllText(
114 @"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json"
115 ), json);
116 }
117
118 [Fact]
119 public void MeetingParticipantJoinActivity_JsonSerialize_Derived_from_Class()
120 {
121 EventActivity activity = SetupMeetingParticipantJoinActivity();
122
123 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
124
125 string expectedPath = "Activity.Event.Application/vnd.microsoft.meetingParticipantJoin";
126 Assert.Equal(expectedPath, activity.GetPath());
127 Assert.True(activity.Name.IsMeetingParticipantJoin);
128 Assert.False(activity.Name.IsMeetingEnd);
129 Assert.Equal(File.ReadAllText(
130 @"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json"
131 ), json);
132 }
133
134 [Fact]
135 public void MeetingParticipantJoinActivity_JsonSerialize_Derived__From_Interface()
136 {
137 IActivity activity = SetupMeetingParticipantJoinActivity();
138
139 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
140
141 string expectedPath = "Activity.Event.Application/vnd.microsoft.meetingParticipantJoin";
142 Assert.Equal(expectedPath, activity.GetPath());
143 Assert.Equal(File.ReadAllText(
144 @"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json"
145 ), json);
146 }
147
148 [Fact]
149 public void MeetingParticipantJoinActivity_JsonDeserialize()
150 {
151 var json = File.ReadAllText(@"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json");
152 var activity = JsonSerializer.Deserialize<MeetingParticipantJoinActivity>(json);
153 var expected = SetupMeetingParticipantJoinActivity();
154
155 Assert.Equal(expected.ToString(), activity!.ToString());
156 Assert.Equal(typeof(MeetingParticipantJoinActivity), activity.Name.ToType());
157 Assert.Equal("Application/vnd.microsoft.meetingParticipantJoin", activity.Name.ToPrettyString());
158 Assert.NotNull(activity.ToMeetingParticipantJoin());
159 }
160
161
162 [Fact]
163 public void MeetingParticipantJoinActivity_JsonDeserialize_Derived()
164 {
165 var json = File.ReadAllText(@"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json");
166 var activity = JsonSerializer.Deserialize<EventActivity>(json);
167 var expected = SetupMeetingParticipantJoinActivity();
168
169 Assert.Equal(expected.ToString(), activity!.ToString());
170 Assert.NotNull(activity.ToEvent());
171 Assert.Equal(typeof(MeetingParticipantJoinActivity), activity.Name.ToType());
172 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.Events.MeetingParticipantJoinActivity' to type 'Microsoft.Teams.Api.Activities.InstallUpdateActivity'.";
173 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToInstallUpdate());
174 Assert.Equal(expectedSubmitException, ex.Message);
175 }
176
177 [Fact]
178 public void MeetingParticipantJoinActivity_JsonDeserialize_Activity_Derived()
179 {
180 var json = File.ReadAllText(@"../../../Json/Activity/Events/MeetingParticipantJoinActivity.json");
181 var activity = JsonSerializer.Deserialize<Activity>(json);
182 var expected = SetupMeetingParticipantJoinActivity();
183
184 Assert.Equal(expected.ToString(), activity!.ToString());
185 Assert.NotNull(activity.ToEvent());
186 var expectedSubmitException = "Unable to cast object of type 'Microsoft.Teams.Api.Activities.Events.MeetingParticipantJoinActivity' to type 'Microsoft.Teams.Api.Activities.InstallUpdateActivity'.";
187 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToInstallUpdate());
188 Assert.Equal(expectedSubmitException, ex.Message);
189 }
190}