-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathContentstackRegionUnitTests.cs
More file actions
200 lines (164 loc) · 5.37 KB
/
ContentstackRegionUnitTests.cs
File metadata and controls
200 lines (164 loc) · 5.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
using System;
using System.Linq;
using AutoFixture;
using Contentstack.Core.Internals;
using Xunit;
namespace Contentstack.Core.Unit.Tests
{
/// <summary>
/// Unit tests for ContentstackRegion enum - uses mocks and AutoFixture, no real API calls
/// </summary>
public class ContentstackRegionUnitTests
{
private readonly IFixture _fixture = new Fixture();
#region Enum Values Tests
[Fact]
public void ContentstackRegion_US_HasCorrectValue()
{
// Act
var region = ContentstackRegion.US;
// Assert
Assert.Equal(0, (int)region);
}
[Fact]
public void ContentstackRegion_EU_HasCorrectValue()
{
// Act
var region = ContentstackRegion.EU;
// Assert
Assert.Equal(1, (int)region);
}
[Fact]
public void ContentstackRegion_AZURE_EU_HasCorrectValue()
{
// Act
var region = ContentstackRegion.AZURE_EU;
// Assert
Assert.Equal(2, (int)region);
}
[Fact]
public void ContentstackRegion_AZURE_NA_HasCorrectValue()
{
// Act
var region = ContentstackRegion.AZURE_NA;
// Assert
Assert.Equal(3, (int)region);
}
[Fact]
public void ContentstackRegion_GCP_NA_HasCorrectValue()
{
// Act
var region = ContentstackRegion.GCP_NA;
// Assert
Assert.Equal(4, (int)region);
}
[Fact]
public void ContentstackRegion_AU_HasCorrectValue()
{
// Act
var region = ContentstackRegion.AU;
// Assert
Assert.Equal(5, (int)region);
}
#endregion
#region Enum Parsing Tests
[Fact]
public void ContentstackRegion_Parse_WithValidString_ReturnsCorrectValue()
{
// Act
var result = Enum.Parse<ContentstackRegion>("US");
// Assert
Assert.Equal(ContentstackRegion.US, result);
}
[Fact]
public void ContentstackRegion_Parse_WithEU_ReturnsCorrectValue()
{
// Act
var result = Enum.Parse<ContentstackRegion>("EU");
// Assert
Assert.Equal(ContentstackRegion.EU, result);
}
[Fact]
public void ContentstackRegion_Parse_WithAZURE_EU_ReturnsCorrectValue()
{
// Act
var result = Enum.Parse<ContentstackRegion>("AZURE_EU");
// Assert
Assert.Equal(ContentstackRegion.AZURE_EU, result);
}
[Fact]
public void ContentstackRegion_Parse_WithInvalidString_ThrowsException()
{
// Act & Assert
Assert.Throws<ArgumentException>(() => Enum.Parse<ContentstackRegion>("INVALID"));
}
[Fact]
public void ContentstackRegion_TryParse_WithValidString_ReturnsTrue()
{
// Act
var result = Enum.TryParse<ContentstackRegion>("US", out var region);
// Assert
Assert.True(result);
Assert.Equal(ContentstackRegion.US, region);
}
[Fact]
public void ContentstackRegion_TryParse_WithInvalidString_ReturnsFalse()
{
// Act
var result = Enum.TryParse<ContentstackRegion>("INVALID", out var region);
// Assert
Assert.False(result);
Assert.Equal(default(ContentstackRegion), region);
}
#endregion
#region Enum Usage Tests
[Fact]
public void ContentstackRegion_CanBeUsedInSwitchStatement()
{
// Arrange
var region = ContentstackRegion.US;
var result = "";
// Act
switch (region)
{
case ContentstackRegion.US:
result = "US";
break;
case ContentstackRegion.EU:
result = "EU";
break;
case ContentstackRegion.AZURE_EU:
result = "AZURE_EU";
break;
case ContentstackRegion.AZURE_NA:
result = "AZURE_NA";
break;
case ContentstackRegion.GCP_NA:
result = "GCP_NA";
break;
case ContentstackRegion.AU:
result = "AU";
break;
}
// Assert
Assert.Equal("US", result);
}
[Fact]
public void ContentstackRegion_GetValues_ReturnsAllRegions()
{
// Act
var values = Enum.GetValues(typeof(ContentstackRegion));
// Assert
Assert.NotNull(values);
Assert.Equal(6, values.Length);
var regionArray = values.Cast<ContentstackRegion>().ToArray();
Assert.Contains(ContentstackRegion.US, regionArray);
Assert.Contains(ContentstackRegion.EU, regionArray);
Assert.Contains(ContentstackRegion.AZURE_EU, regionArray);
Assert.Contains(ContentstackRegion.AZURE_NA, regionArray);
Assert.Contains(ContentstackRegion.GCP_NA, regionArray);
Assert.Contains(ContentstackRegion.AU, regionArray);
}
#endregion
}
}