microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
feature/user-agent-header

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

core/test/Microsoft.Teams.Bot.Apps.UnitTests/MessageUpdateActivityTests.cs

142lines · modecode

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4using Microsoft.Teams.Bot.Core.Schema;
5using Microsoft.Teams.Bot.Apps.Schema;
6using Microsoft.Teams.Bot.Apps.Schema.MessageActivities;
7
8namespace Microsoft.Teams.Bot.Apps.UnitTests;
9
10public class MessageUpdateActivityTests
11{
12 [Fact]
13 public void Constructor_Default_SetsMessageUpdateType()
14 {
15 MessageUpdateActivity activity = new();
16 Assert.Equal(TeamsActivityType.MessageUpdate, activity.Type);
17 }
18
19 [Fact]
20 public void Constructor_WithText_SetsTextAndMessageUpdateType()
21 {
22 MessageUpdateActivity activity = new("Updated text");
23 Assert.Equal(TeamsActivityType.MessageUpdate, activity.Type);
24 Assert.Equal("Updated text", activity.Text);
25 }
26
27 [Fact]
28 public void DeserializeMessageUpdateFromJson()
29 {
30 string json = """
31 {
32 "type": "messageUpdate",
33 "text": "Updated message text",
34 "conversation": {
35 "id": "19"
36 }
37 }
38 """;
39 MessageUpdateActivity act = MessageUpdateActivity.FromJsonString(json);
40 Assert.NotNull(act);
41 Assert.Equal("messageUpdate", act.Type);
42
43 Assert.Equal("Updated message text", act.Text);
44 }
45
46 [Fact]
47 public void SerializeMessageUpdateToJson()
48 {
49 var activity = new MessageUpdateActivity
50 {
51 Text = "Updated message",
52 Speak = "Updated message spoken"
53 };
54
55 string json = activity.ToJson();
56 Assert.Contains("\"type\": \"messageUpdate\"", json);
57 Assert.Contains("\"text\": \"Updated message\"", json);
58 Assert.Contains("\"speak\": \"Updated message spoken\"", json);
59 }
60
61 [Fact]
62 public void MessageUpdateInheritsFromMessageActivity()
63 {
64 var activity = new MessageUpdateActivity
65 {
66 Text = "Updated",
67 InputHint = InputHints.AcceptingInput,
68 TextFormat = TextFormats.Markdown
69 };
70
71 Assert.Equal("Updated", activity.Text);
72 Assert.Equal(InputHints.AcceptingInput, activity.InputHint);
73 Assert.Equal(TextFormats.Markdown, activity.TextFormat);
74 }
75
76 [Fact]
77 public void FromActivityConvertsCorrectly()
78 {
79 var coreActivity = new CoreActivity
80 {
81 Type = TeamsActivityType.MessageUpdate
82 };
83 coreActivity.Properties["text"] = "Test message";
84
85 MessageUpdateActivity messageUpdate = MessageUpdateActivity.FromActivity(coreActivity);
86 Assert.NotNull(messageUpdate);
87 Assert.Equal(TeamsActivityType.MessageUpdate, messageUpdate.Type);
88 Assert.Equal("Test message", messageUpdate.Text);
89 }
90
91 [Fact]
92 public void FromJsonStringCreatesCorrectType()
93 {
94 string json = """
95 {
96 "type": "messageUpdate",
97 "text": "Updated content",
98 "textFormat": "markdown",
99 "conversation": {
100 "id": "conv-123"
101 }
102 }
103 """;
104
105 TeamsActivity activity = TeamsActivity.FromJsonString(json);
106 Assert.IsType<MessageUpdateActivity>(activity);
107 MessageUpdateActivity? mua = activity as MessageUpdateActivity;
108 Assert.NotNull(mua);
109 Assert.Equal(TeamsActivityType.MessageUpdate, activity.Type);
110 Assert.Equal("Updated content", mua.Text);
111 Assert.Equal("markdown", mua.TextFormat);
112 }
113
114 [Fact]
115 public void MessageUpdateActivity_Constructor_CopiesTextToProperties()
116 {
117 MessageUpdateActivity activity = new("Updated message text");
118
119 Assert.Equal("Updated message text", activity.Text);
120 Assert.Equal("Updated message text", activity.Properties["text"]);
121 }
122
123 [Fact]
124 public void MessageUpdateActivity_SerializedAsCoreActivity_IncludesText()
125 {
126 MessageUpdateActivity messageUpdateActivity = new("Message update text")
127 {
128 Type = TeamsActivityType.MessageUpdate,
129 ServiceUrl = new Uri("https://test.service.url/"),
130 Speak = "Message update spoken"
131 };
132
133 CoreActivity coreActivity = messageUpdateActivity;
134 string json = coreActivity.ToJson();
135
136 Assert.Contains("Message update text", json);
137 Assert.Contains("\"text\"", json);
138 Assert.Contains("Message update spoken", json);
139 Assert.Contains("\"speak\"", json);
140 Assert.Contains("messageUpdate", json);
141 }
142}
143