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

134lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Entities;
5
6namespace Microsoft.Teams.Api.Tests.Entities;
7
8#pragma warning disable ExperimentalTeamsTargeted
9public class TargetedMessageInfoEntityTests
10{
11 [Fact]
12 public void TargetedMessageInfoEntity_JsonSerialize()
13 {
14 var entity = new TargetedMessageInfoEntity()
15 {
16 MessageId = "1772129782775"
17 };
18
19 var json = JsonSerializer.Serialize(entity, new JsonSerializerOptions()
20 {
21 WriteIndented = true,
22 IndentSize = 2,
23 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
24 });
25
26 Assert.Equal(File.ReadAllText(
27 @"../../../Json/Entities/TargetedMessageInfoEntity.json"
28 ), json);
29 }
30
31 [Fact]
32 public void TargetedMessageInfoEntity_JsonSerialize_Derived()
33 {
34 Entity entity = new TargetedMessageInfoEntity()
35 {
36 MessageId = "1772129782775"
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/TargetedMessageInfoEntity.json"
48 ), json);
49 }
50
51 [Fact]
52 public void TargetedMessageInfoEntity_JsonDeserialize()
53 {
54 var json = File.ReadAllText(@"../../../Json/Entities/TargetedMessageInfoEntity.json");
55 var entity = JsonSerializer.Deserialize<TargetedMessageInfoEntity>(json);
56
57 Assert.NotNull(entity);
58 Assert.Equal("targetedMessageInfo", entity.Type);
59 Assert.Equal("1772129782775", entity.MessageId);
60 }
61
62 [Fact]
63 public void TargetedMessageInfoEntity_JsonDeserialize_Derived()
64 {
65 var json = File.ReadAllText(@"../../../Json/Entities/TargetedMessageInfoEntity.json");
66 var entity = JsonSerializer.Deserialize<Entity>(json);
67
68 Assert.NotNull(entity);
69 Assert.IsType<TargetedMessageInfoEntity>(entity);
70
71 var targeted = (TargetedMessageInfoEntity)entity;
72 Assert.Equal("targetedMessageInfo", targeted.Type);
73 Assert.Equal("1772129782775", targeted.MessageId);
74 }
75
76 [Fact]
77 public void AddTargetedMessageInfo_AddsEntity()
78 {
79 var activity = new MessageActivity("test");
80 activity.AddTargetedMessageInfo("12345");
81
82 var entity = activity.Entities?.OfType<TargetedMessageInfoEntity>().SingleOrDefault();
83 Assert.NotNull(entity);
84 Assert.Equal("12345", entity!.MessageId);
85 }
86
87 [Fact]
88 public void AddTargetedMessageInfo_DoesNotDuplicate_WhenConcreteEntityExists()
89 {
90 var activity = new MessageActivity("test")
91 .AddEntity(new TargetedMessageInfoEntity { MessageId = "9999" });
92
93 activity.AddTargetedMessageInfo("12345");
94
95 var entities = activity.Entities!.OfType<TargetedMessageInfoEntity>().ToList();
96 Assert.Single(entities);
97 Assert.Equal("9999", entities[0].MessageId);
98 }
99
100 [Fact]
101 public void AddTargetedMessageInfo_DoesNotDuplicate_WhenGenericEntityWithMatchingType()
102 {
103 var activity = new MessageActivity("test")
104 .AddEntity(new Entity("targetedMessageInfo"));
105
106 activity.AddTargetedMessageInfo("12345");
107
108 var entities = activity.Entities!.Where(e => e.Type == "targetedMessageInfo").ToList();
109 Assert.Single(entities);
110 }
111
112 [Fact]
113 public void AddTargetedMessageInfo_StripsQuotedReplyEntities()
114 {
115 var activity = new MessageActivity("test")
116 .AddEntity(new Entity("quotedReply"));
117
118 activity.AddTargetedMessageInfo("12345");
119
120 Assert.DoesNotContain(activity.Entities!, e => e.Type == "quotedReply");
121 Assert.Contains(activity.Entities!, e => e.Type == "targetedMessageInfo");
122 }
123
124 [Fact]
125 public void AddTargetedMessageInfo_StripsQuotedPlaceholderFromText()
126 {
127 var activity = new MessageActivity("<quoted messageId=\"12345\"/> Here is my reply");
128
129 activity.AddTargetedMessageInfo("12345");
130
131 Assert.Equal("Here is my reply", activity.Text);
132 Assert.Contains(activity.Entities!, e => e.Type == "targetedMessageInfo");
133 }
134}