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

136lines · 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 AnonQueryLinkMEActivityTests
12{
13 private AnonQueryLinkActivity SetupAnonQueryLinkActivity()
14 {
15 return new AnonQueryLinkActivity()
16 {
17 Value = new AppBasedQueryLink()
18 {
19 Url = "https://some-url"
20 },
21 };
22 }
23
24 [Fact]
25 public void AnonQueryLinkMEActivity_JsonSerialize()
26 {
27 var activity = SetupAnonQueryLinkActivity();
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/anonymousQueryLink";
37 Assert.Equal(expectedPath, activity.GetPath());
38 Assert.Equal(File.ReadAllText(
39 @"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json"
40 ), json);
41 }
42
43 [Fact]
44 public void AnonQueryLinkMEActivity_JsonSerialize_Derived()
45 {
46 MessageExtensionActivity activity = SetupAnonQueryLinkActivity();
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/anonymousQueryLink";
56 Assert.Equal(expectedPath, activity.GetPath());
57 Assert.Equal(File.ReadAllText(
58 @"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json"
59 ), json);
60 }
61
62 [Fact]
63 public void AnonQueryLinkMEActivity_JsonSerialize_Derived_Interface()
64 {
65 InvokeActivity activity = SetupAnonQueryLinkActivity();
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/anonymousQueryLink";
75 Assert.Equal(expectedPath, activity.GetPath());
76 Assert.Equal(File.ReadAllText(
77 @"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json"
78 ), json);
79 }
80
81 [Fact]
82 public void AnonQueryLinkMEActivity_JsonDeserialize()
83 {
84 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json");
85 var activity = JsonSerializer.Deserialize<AnonQueryLinkActivity>(json);
86 var expected = SetupAnonQueryLinkActivity();
87
88 Assert.Equal(expected.ToString(), activity!.ToString());
89 Assert.NotNull(activity.ToMessageExtension());
90 string expectedPath = "Activity.Invoke.ComposeExtension/anonymousQueryLink";
91 Assert.Equal(expectedPath, activity.GetPath());
92 }
93
94 [Fact]
95 public void AnonQueryLinkMEActivity_JsonDeserialize_Derived()
96 {
97 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json");
98 var activity = JsonSerializer.Deserialize<MessageExtensionActivity>(json);
99 var expected = SetupAnonQueryLinkActivity();
100
101 Assert.Equal(expected.ToString(), activity!.ToString());
102 Assert.NotNull(activity.ToMessageExtension());
103 var expectedSubmitException = "Unable to cast object of type 'AnonQueryLinkActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
104 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
105 Assert.Equal(expectedSubmitException, ex.Message);
106 }
107
108 [Fact]
109 public void AnonQueryLinkMEActivity_JsonDeserialize_Derived_Interface()
110 {
111 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json");
112 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
113 var expected = SetupAnonQueryLinkActivity();
114
115 Assert.NotNull(activity);
116 Assert.Equal(expected.ToString(), activity!.ToString());
117 Assert.NotNull(activity.ToMessageExtension());
118
119 var expectedSubmitException = "Unable to cast object of type 'AnonQueryLinkActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.SignInActivity'.";
120 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToSignIn());
121 Assert.Equal(expectedSubmitException, ex.Message);
122 }
123
124 [Fact]
125 public void AnonQueryLinkMEActivity_JsonDeserialize_Derived_Activity_Interface()
126 {
127 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/AnonQueryLinkMEActivity.json");
128 var activity = JsonSerializer.Deserialize<Activity>(json);
129 var expected = SetupAnonQueryLinkActivity();
130
131 Assert.NotNull(activity);
132 Assert.Equal(expected.ToString(), activity.ToString());
133 string expectedPath = "Activity.Invoke.ComposeExtension/anonymousQueryLink";
134 Assert.Equal(expectedPath, activity.GetPath());
135 }
136}