microsoft/teams.net

Public

mirrored fromhttps://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/Entities/MessageEntityTests.cs

177lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Entities;
4
5namespace Microsoft.Teams.Api.Tests.Entities;
6
7public class MessageEntityTests
8{
9 [Fact]
10 public void MessageEntity_JsonSerialize()
11 {
12
13 var entity = new MessageEntity()
14 {
15 AdditionalType = ["test", "valid"]
16 };
17
18 var json = JsonSerializer.Serialize(entity, new JsonSerializerOptions()
19 {
20 WriteIndented = true,
21 IndentSize = 2,
22 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
23 });
24
25 Assert.Equal(File.ReadAllText(
26 @"../../../Json/Entities/MessageEntity.json"
27 ), json);
28 }
29
30
31 [Fact]
32 public void MessageEntity_JsonSerialize_Derived()
33 {
34 MessageEntity entity = new MessageEntity()
35 {
36 AdditionalType = ["test", "valid"]
37 };
38
39 var json = JsonSerializer.Serialize(entity, new JsonSerializerOptions()
40 {
41 WriteIndented = true,
42 IndentSize = 2,
43 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
44 });
45
46 Assert.Equal(File.ReadAllText(
47 @"../../../Json/Entities/MessageEntity.json"
48 ), json);
49 }
50
51 [Fact]
52 public void MessageEntity_JsonSerialize_Interface_Derived()
53 {
54 Entity entity = new MessageEntity()
55 {
56 AdditionalType = ["test", "valid"]
57 };
58
59 var json = JsonSerializer.Serialize(entity, new JsonSerializerOptions()
60 {
61 WriteIndented = true,
62 IndentSize = 2,
63 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
64 });
65
66 Assert.Equal(File.ReadAllText(
67 @"../../../Json/Entities/MessageEntity.json"
68 ), json);
69 }
70
71
72 [Fact]
73 public void MessageEntity_JsonDeserialize()
74 {
75 var json = File.ReadAllText(@"../../../Json/Entities/MessageEntity.json");
76 var entity = JsonSerializer.Deserialize<MessageEntity>(json);
77 var expected = new MessageEntity()
78 {
79 AdditionalType = ["test", "valid"]
80 };
81
82 Assert.Equivalent(expected, entity);
83 }
84
85 [Fact]
86 public void MessageEntity_JsonDeserialize_Derived()
87 {
88 var json = File.ReadAllText(@"../../../Json/Entities/MessageEntity.json");
89 var entity = JsonSerializer.Deserialize<Entity>(json);
90
91 var expected = new MessageEntity()
92 {
93 AdditionalType = ["test", "valid"]
94 };
95
96 Assert.Equivalent(expected, entity);
97 }
98
99 [Fact]
100 public void CitationEntity_CreatedFromMessageEntity()
101 {
102 var messageEntity = new MessageEntity()
103 {
104 Type = "https://schema.org/Message",
105 OType = "Message",
106 OContext = "https://schema.org",
107 AdditionalType = ["AIGeneratedContent"]
108 };
109
110 var citationEntity = new CitationEntity(messageEntity);
111
112 Assert.Equal(messageEntity.Type, citationEntity.Type);
113 Assert.Equal(messageEntity.OType, citationEntity.OType);
114 Assert.Equal(messageEntity.OContext, citationEntity.OContext);
115 Assert.Equal(messageEntity.AdditionalType, citationEntity.AdditionalType);
116 }
117
118 [Fact]
119 public void CitationEntity_AddsCitation()
120 {
121 var messageEntity = new MessageEntity()
122 {
123 Type = "https://schema.org/Message",
124 OType = "Message",
125 OContext = "https://schema.org"
126 };
127
128 var citationEntity = new CitationEntity(messageEntity);
129 citationEntity.Citation ??= [];
130 citationEntity.Citation.Add(new CitationEntity.Claim()
131 {
132 Position = 1,
133 Appearance = new CitationEntity.AppearanceDocument()
134 {
135 Name = "Test Document",
136 Abstract = "Test abstract"
137 }
138 });
139
140 Assert.NotNull(citationEntity.Citation);
141 Assert.Single(citationEntity.Citation);
142 Assert.Equal(1, citationEntity.Citation[0].Position);
143 Assert.Equal("Test Document", citationEntity.Citation[0].Appearance.Name);
144 Assert.Equal("Test abstract", citationEntity.Citation[0].Appearance.Abstract);
145 }
146
147 [Fact]
148 public void CitationEntity_PreservesExistingCitations()
149 {
150 var existingCitation = new CitationEntity.Claim()
151 {
152 Position = 1,
153 Appearance = new CitationEntity.AppearanceDocument()
154 {
155 Name = "Existing Doc",
156 Abstract = "Existing abstract"
157 }
158 };
159
160 var messageEntity = new CitationEntity(new MessageEntity()
161 {
162 Type = "https://schema.org/Message",
163 OType = "Message",
164 OContext = "https://schema.org"
165 });
166 messageEntity.Citation = [existingCitation];
167
168 var citationEntity = new CitationEntity(messageEntity);
169
170 Assert.NotNull(citationEntity.Citation);
171 Assert.Single(citationEntity.Citation);
172 Assert.Equal(1, citationEntity.Citation[0].Position);
173 Assert.Equal("Existing Doc", citationEntity.Citation[0].Appearance.Name);
174 }
175
176
177}