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/Configs/SubmitConfigActivityTests.cs

122lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.Api.Activities;
4using Microsoft.Teams.Api.Activities.Invokes;
5
6using static Microsoft.Teams.Api.Activities.Invokes.Configs;
7
8namespace Microsoft.Teams.Api.Tests.Activities.Invokes;
9
10public class ConfigSubmitActivityTests
11{
12 private static readonly JsonSerializerOptions CachedJsonSerializerOptions = new JsonSerializerOptions
13 {
14 WriteIndented = true,
15 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
16 };
17
18 private SubmitActivity SetupConfigSubmitActivity()
19 {
20 var value = "You have chosen to submit config for bot";
21 return new SubmitActivity(value);
22 }
23
24 [Fact]
25 public void ConfigSubmitActivity_JsonSerialize()
26 {
27 var activity = SetupConfigSubmitActivity();
28
29 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
30
31 string expectedPath = "Activity.Invoke.Config/submit";
32 Assert.Equal(expectedPath, activity.GetPath());
33
34 Assert.NotNull(activity.ToSubmit());
35 var expectedSubmitException = "Unable to cast object of type 'SubmitActivity' to type 'FetchActivity'.";
36 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToFetch());
37 Assert.Equal(expectedSubmitException, ex.Message);
38 Assert.Equal(File.ReadAllText(
39 @"../../../Json/Activity/Invokes/ConfigSubmitActivity.json"
40 ), json);
41 }
42
43 [Fact]
44 public void ConfigSubmitActivity_JsonSerialize_Derived()
45 {
46 ConfigActivity activity = SetupConfigSubmitActivity();
47
48 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
49
50 string expectedPath = "Activity.Invoke.Config/submit";
51 Assert.Equal(expectedPath, activity.GetPath());
52 Assert.Equal(File.ReadAllText(
53 @"../../../Json/Activity/Invokes/ConfigSubmitActivity.json"
54 ), json);
55 }
56
57 [Fact]
58 public void ConfigSubmitActivity_JsonSerialize_Derived_Interface()
59 {
60 InvokeActivity activity = SetupConfigSubmitActivity();
61
62 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
63
64 string expectedPath = "Activity.Invoke.Config/submit";
65 Assert.Equal(expectedPath, activity.GetPath());
66 Assert.Equal(File.ReadAllText(
67 @"../../../Json/Activity/Invokes/ConfigSubmitActivity.json"
68 ), json);
69 }
70
71 [Fact]
72 public void ConfigSubmitActivity_JsonDeserialize()
73 {
74 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigSubmitActivity.json");
75 var activity = JsonSerializer.Deserialize<SubmitActivity>(json, CachedJsonSerializerOptions);
76 var expected = SetupConfigSubmitActivity();
77
78 Assert.Equal(expected.ToString(), activity!.ToString());
79 Assert.NotNull(activity.ToConfig());
80
81 var expectedSubmitException = "Unable to cast object of type 'SubmitActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
82 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
83 Assert.Equal(expectedSubmitException, ex.Message);
84 }
85
86 [Fact]
87 public void ConfigSubmitActivity_JsonDeserialize_Derived()
88 {
89 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigSubmitActivity.json");
90 var activity = JsonSerializer.Deserialize<ConfigActivity>(json, CachedJsonSerializerOptions);
91 var expected = SetupConfigSubmitActivity();
92
93 Assert.NotNull(activity);
94 Assert.Equal(expected.ToString(), activity!.ToString());
95 Assert.NotNull(activity.ToSubmit());
96 var expectedSubmitException = "Unable to cast object of type 'SubmitActivity' to type 'FetchActivity'.";
97 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToFetch());
98 Assert.Equal(expectedSubmitException, ex.Message);
99 }
100
101 [Fact]
102 public void ConfigSubmitActivity_JsonDeserialize_Derived_Interface()
103 {
104 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigSubmitActivity.json");
105 var activity = JsonSerializer.Deserialize<InvokeActivity>(json, CachedJsonSerializerOptions);
106 var expected = SetupConfigSubmitActivity();
107
108 Assert.NotNull(activity);
109 Assert.Equal(expected.ToString(), activity.ToString());
110 }
111
112 [Fact]
113 public void ConfigSubmitActivity_JsonDeserialize_Derived_Activity_Interface()
114 {
115 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigSubmitActivity.json");
116 var activity = JsonSerializer.Deserialize<Activity>(json, CachedJsonSerializerOptions);
117 var expected = SetupConfigSubmitActivity();
118
119 Assert.NotNull(activity);
120 Assert.Equal(expected.ToString(), activity.ToString());
121 }
122}