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/Invokes/MessageExtensions/QueryLinkMEActivityTests.cs

132lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Invokes;
5
6
7using static Microsoft.Teams.Api.Activities.Invokes.MessageExtensions;
8
9namespace Microsoft.Teams.Api.Tests.Activities.Invokes;
10
11public class QueryLinkMEActivityTests
12{
13 private QueryLinkActivity SetupQueryLinkActivity()
14 {
15 return new QueryLinkActivity()
16 {
17 Value = new AppBasedQueryLink()
18 {
19 Url = "https://some-url"
20 },
21 };
22 }
23
24 [Fact]
25 public void QueryLinkMEActivity_JsonSerialize()
26 {
27 var activity = SetupQueryLinkActivity();
28
29 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
30 {
31 WriteIndented = true,
32 IndentSize = 2,
33 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
34 });
35
36 string expectedPath = "Activity.Invoke.ComposeExtension/queryLink";
37 Assert.Equal(expectedPath, activity.GetPath());
38 Assert.Equal(File.ReadAllText(
39 @"../../../Json/Activity/Invokes/QueryLinkMEActivity.json"
40 ), json);
41 }
42
43 [Fact]
44 public void QueryLinkMEActivity_JsonSerialize_Derived()
45 {
46 MessageExtensionActivity activity = SetupQueryLinkActivity();
47
48 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
49 {
50 WriteIndented = true,
51 IndentSize = 2,
52 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
53 });
54
55 string expectedPath = "Activity.Invoke.ComposeExtension/queryLink";
56 Assert.Equal(expectedPath, activity.GetPath());
57 Assert.Equal(File.ReadAllText(
58 @"../../../Json/Activity/Invokes/QueryLinkMEActivity.json"
59 ), json);
60 }
61
62 [Fact]
63 public void QueryLinkMEActivity_JsonSerialize_Derived_Interface()
64 {
65 InvokeActivity activity = SetupQueryLinkActivity();
66
67 var json = JsonSerializer.Serialize(activity, new JsonSerializerOptions()
68 {
69 WriteIndented = true,
70 IndentSize = 2,
71 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
72 });
73
74 string expectedPath = "Activity.Invoke.ComposeExtension/queryLink";
75 Assert.Equal(expectedPath, activity.GetPath());
76 Assert.Equal(File.ReadAllText(
77 @"../../../Json/Activity/Invokes/QueryLinkMEActivity.json"
78 ), json);
79 }
80
81 [Fact]
82 public void QueryLinkMEActivity_JsonDeserialize()
83 {
84 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/QueryLinkMEActivity.json");
85 var activity = JsonSerializer.Deserialize<QueryLinkActivity>(json);
86 var expected = SetupQueryLinkActivity();
87
88 Assert.Equal(expected.ToString(), activity!.ToString());
89 Assert.NotNull(activity.ToMessageExtension());
90 }
91
92 [Fact]
93 public void QueryLinkMEActivity_JsonDeserialize_Derived()
94 {
95 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/QueryLinkMEActivity.json");
96 var activity = JsonSerializer.Deserialize<MessageExtensionActivity>(json);
97 var expected = SetupQueryLinkActivity();
98
99 Assert.Equal(expected.ToString(), activity!.ToString());
100 Assert.NotNull(activity.ToMessageExtension());
101 var expectedSubmitException = "Unable to cast object of type 'QueryLinkActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
102 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
103 Assert.Equal(expectedSubmitException, ex.Message);
104 }
105
106 [Fact]
107 public void QueryLinkMEActivity_JsonDeserialize_Derived_Interface()
108 {
109 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/QueryLinkMEActivity.json");
110 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
111 var expected = SetupQueryLinkActivity();
112
113 Assert.NotNull(activity);
114 Assert.Equal(expected.ToString(), activity.ToString());
115 Assert.NotNull(activity.ToMessageExtension());
116
117 var expectedSubmitException = "Unable to cast object of type 'QueryLinkActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.SignInActivity'.";
118 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToSignIn());
119 Assert.Equal(expectedSubmitException, ex.Message);
120 }
121
122 [Fact]
123 public void QueryLinkMEActivity_JsonDeserialize_Derived_Activity_Interface()
124 {
125 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/QueryLinkMEActivity.json");
126 var activity = JsonSerializer.Deserialize<Activity>(json);
127 var expected = SetupQueryLinkActivity();
128
129 Assert.NotNull(activity);
130 Assert.Equal(expected.ToString(), activity.ToString());
131 }
132}