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

128lines · 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 ConfigFetchActivityTests
11{
12 private static readonly JsonSerializerOptions CachedJsonSerializerOptions = new JsonSerializerOptions
13 {
14 WriteIndented = true,
15 IndentSize = 2,
16 DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull
17 };
18
19 private FetchActivity SetupConfigFetchActivity()
20 {
21 var value = new Cards.HeroCard()
22 {
23 Title = "test card",
24 SubTitle = "test fetch config activity"
25 };
26 return new FetchActivity(value);
27 }
28
29 [Fact]
30 public void ConfigFetchActivity_JsonSerialize()
31 {
32 var activity = SetupConfigFetchActivity();
33
34 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
35
36 string expectedPath = "Activity.Invoke.Config/fetch";
37 Assert.Equal(expectedPath, activity.GetPath());
38
39 Assert.NotNull(activity.ToFetch());
40 var expectedSubmitException = "Unable to cast object of type 'FetchActivity' to type 'SubmitActivity'.";
41 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToSubmit());
42 Assert.Equal(expectedSubmitException, ex.Message);
43
44 Assert.Equal(File.ReadAllText(
45 @"../../../Json/Activity/Invokes/ConfigFetchActivity.json"
46 ), json);
47 }
48
49 [Fact]
50 public void ConfigFetchActivity_JsonSerialize_Derived()
51 {
52 ConfigActivity activity = SetupConfigFetchActivity();
53
54 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
55
56 string expectedPath = "Activity.Invoke.Config/fetch";
57 Assert.Equal(expectedPath, activity.GetPath());
58 Assert.Equal(File.ReadAllText(
59 @"../../../Json/Activity/Invokes/ConfigFetchActivity.json"
60 ), json);
61 }
62
63 [Fact]
64 public void ConfigFetchActivity_JsonSerialize_Derived_Interface()
65 {
66 InvokeActivity activity = SetupConfigFetchActivity();
67
68 var json = JsonSerializer.Serialize(activity, CachedJsonSerializerOptions);
69
70 string expectedPath = "Activity.Invoke.Config/fetch";
71 Assert.Equal(expectedPath, activity.GetPath());
72 Assert.Equal(File.ReadAllText(
73 @"../../../Json/Activity/Invokes/ConfigFetchActivity.json"
74 ), json);
75 }
76
77 [Fact]
78 public void ConfigFetchActivity_JsonDeserialize()
79 {
80 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigFetchActivity.json");
81 var activity = JsonSerializer.Deserialize<SubmitActivity>(json);
82 var expected = SetupConfigFetchActivity();
83
84 Assert.Equal(expected.ToString(), activity!.ToString());
85 Assert.NotNull(activity.ToConfig());
86
87 var expectedSubmitException = "Unable to cast object of type 'SubmitActivity' to type 'Microsoft.Teams.Api.Activities.Invokes.TaskActivity'.";
88 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToTask());
89 Assert.Equal(expectedSubmitException, ex.Message);
90 }
91
92 [Fact]
93 public void ConfigFetchActivityJsonDeserialize_Derived()
94 {
95 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigFetchActivity.json");
96 var activity = JsonSerializer.Deserialize<ConfigActivity>(json);
97 var expected = SetupConfigFetchActivity();
98
99 Assert.NotNull(activity);
100 Assert.Equal(expected.ToString(), activity.ToString());
101 Assert.NotNull(activity.ToFetch());
102 var expectedSubmitException = "Unable to cast object of type 'FetchActivity' to type 'SubmitActivity'.";
103 var ex = Assert.Throws<System.InvalidCastException>(() => activity.ToSubmit());
104 Assert.Equal(expectedSubmitException, ex.Message);
105 }
106
107 [Fact]
108 public void ConfigFetchActivity_JsonDeserialize_Derived_Interface()
109 {
110 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigFetchActivity.json");
111 var activity = JsonSerializer.Deserialize<InvokeActivity>(json);
112 var expected = SetupConfigFetchActivity();
113
114 Assert.NotNull(activity);
115 Assert.Equal(expected.ToString(), activity.ToString());
116 }
117
118 [Fact]
119 public void ConfigFetchActivity_JsonDeserialize_Derived_Activity_Interface()
120 {
121 var json = File.ReadAllText(@"../../../Json/Activity/Invokes/ConfigFetchActivity.json");
122 var activity = JsonSerializer.Deserialize<Activity>(json);
123 var expected = SetupConfigFetchActivity();
124
125 Assert.NotNull(activity);
126 Assert.Equal(expected.ToString(), activity.ToString());
127 }
128}