Skip to content

Commit 2d4f207

Browse files
author
Adam Smith-Platts
committed
Updated Schema.NET.Test to properly handle testing that a OneOrMany<T> collection is empty, where T is a string
- Added `AssertEx` class that exposes a `Empty()` method that takes a `OneOrMany<T>`. - Updated all `Assert.Empty(OneOrMany<string>!)` instances to use `AssertEx.Empty(OneOrMany<string>)`. Tests now pass!
1 parent 807a296 commit 2d4f207

File tree

8 files changed

+82
-64
lines changed

8 files changed

+82
-64
lines changed

Tests/Schema.NET.Test/AssertEx.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace Schema.NET.Test;
2+
3+
using System.Collections;
4+
using Xunit;
5+
6+
/// <summary>
7+
/// Provides extended methods and helpers to the Xunit.Assert class.
8+
/// </summary>
9+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1711:Identifiers should not have incorrect suffix", Justification = "Name needs to be short to ensure readability of consuming code.")]
10+
public static class AssertEx
11+
{
12+
/// <summary>
13+
/// Verifies that a <see cref="OneOrMany{T}"/> collection is empty.
14+
/// </summary>
15+
/// <typeparam name="T">The type of the values.</typeparam>
16+
/// <inheritdoc cref="Assert.Empty(IEnumerable)"/>
17+
public static void Empty<T>(OneOrMany<T> collection) => Assert.Empty(collection);
18+
}

Tests/Schema.NET.Test/OneOrManyTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void Constructor_NullList_ThrowsArgumentNullException() =>
6060
public void Count_DefaultStructConstructor_ReturnsZero() => Assert.Empty(default(OneOrMany<int>));
6161

6262
[Fact]
63-
public void Count_DefaultClassConstructor_ReturnsZero() => Assert.Empty(default(OneOrMany<string>)!);
63+
public void Count_DefaultClassConstructor_ReturnsZero() => AssertEx.Empty(default(OneOrMany<string>));
6464

6565
[Fact]
6666
public void Count_NullItem_ReturnsZero() => Assert.Empty(new OneOrMany<int?>((int?)null));

Tests/Schema.NET.Test/Values2Test.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue()
1515
Assert.True(values.HasValue1);
1616
Assert.Single(values.Value1);
1717
Assert.False(values.HasValue2);
18-
Assert.Empty(values.Value2!);
18+
AssertEx.Empty(values.Value2);
1919
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
2020
}
2121

@@ -88,7 +88,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue()
8888
Assert.True(values.HasValue1);
8989
Assert.Single(values.Value1);
9090
Assert.False(values.HasValue2);
91-
Assert.Empty(values.Value2!);
91+
AssertEx.Empty(values.Value2);
9292
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
9393
}
9494

@@ -112,7 +112,7 @@ public void ImplicitConversionOperator_Value1ListPassed_OnlyValue1HasValue()
112112
Assert.True(values.HasValue1);
113113
Assert.Equal(2, values.Value1.Count);
114114
Assert.False(values.HasValue2);
115-
Assert.Empty(values.Value2!);
115+
AssertEx.Empty(values.Value2);
116116
Assert.Equal(new List<object>() { 1, 2 }, values.Cast<object>().ToList());
117117
}
118118

Tests/Schema.NET.Test/Values3Test.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue()
1515
Assert.True(values.HasValue1);
1616
Assert.Single(values.Value1);
1717
Assert.False(values.HasValue2);
18-
Assert.Empty(values.Value2!);
18+
AssertEx.Empty(values.Value2);
1919
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
2020
}
2121

@@ -39,7 +39,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue()
3939
Assert.False(values.HasValue1);
4040
Assert.Empty(values.Value1);
4141
Assert.False(values.HasValue2);
42-
Assert.Empty(values.Value2!);
42+
AssertEx.Empty(values.Value2);
4343
Assert.True(values.HasValue3);
4444
Assert.Single(values.Value3);
4545
Assert.Equal(new List<object>() { DayOfWeek.Friday }, values.Cast<object>().ToList());
@@ -119,7 +119,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue()
119119
Assert.True(values.HasValue1);
120120
Assert.Single(values.Value1);
121121
Assert.False(values.HasValue2);
122-
Assert.Empty(values.Value2!);
122+
AssertEx.Empty(values.Value2);
123123
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
124124
}
125125

@@ -143,7 +143,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue()
143143
Assert.False(values.HasValue1);
144144
Assert.Empty(values.Value1);
145145
Assert.False(values.HasValue2);
146-
Assert.Empty(values.Value2!);
146+
AssertEx.Empty(values.Value2);
147147
Assert.True(values.HasValue3);
148148
Assert.Single(values.Value3);
149149
Assert.Equal(new List<object>() { DayOfWeek.Friday }, values.Cast<object>().ToList());
@@ -157,7 +157,7 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue
157157
Assert.True(values.HasValue1);
158158
Assert.Equal(2, values.Value1.Count);
159159
Assert.False(values.HasValue2);
160-
Assert.Empty(values.Value2!);
160+
AssertEx.Empty(values.Value2);
161161
Assert.Equal(new List<object>() { 1, 2 }, values.Cast<object>().ToList());
162162
}
163163

@@ -181,7 +181,7 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue
181181
Assert.False(values.HasValue1);
182182
Assert.Empty(values.Value1);
183183
Assert.False(values.HasValue2);
184-
Assert.Empty(values.Value2!);
184+
AssertEx.Empty(values.Value2);
185185
Assert.True(values.HasValue3);
186186
Assert.Equal(2, values.Value3.Count);
187187
Assert.Equal(new List<object>() { DayOfWeek.Friday, DayOfWeek.Monday }, values.Cast<object>().ToList());

Tests/Schema.NET.Test/Values4Test.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue()
1515
Assert.True(values.HasValue1);
1616
Assert.Single(values.Value1);
1717
Assert.False(values.HasValue2);
18-
Assert.Empty(values.Value2!);
18+
AssertEx.Empty(values.Value2);
1919
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
2020
}
2121

@@ -39,7 +39,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue()
3939
Assert.False(values.HasValue1);
4040
Assert.Empty(values.Value1);
4141
Assert.False(values.HasValue2);
42-
Assert.Empty(values.Value2!);
42+
AssertEx.Empty(values.Value2);
4343
Assert.True(values.HasValue3);
4444
Assert.Single(values.Value3);
4545
Assert.Equal(new List<object>() { DayOfWeek.Friday }, values.Cast<object>().ToList());
@@ -53,7 +53,7 @@ public void Constructor_Value4Passed_OnlyValue4HasValue()
5353
Assert.False(values.HasValue1);
5454
Assert.Empty(values.Value1);
5555
Assert.False(values.HasValue2);
56-
Assert.Empty(values.Value2!);
56+
AssertEx.Empty(values.Value2);
5757
Assert.False(values.HasValue3);
5858
Assert.Empty(values.Value3);
5959
Assert.True(values.HasValue4);
@@ -149,7 +149,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue()
149149
Assert.True(values.HasValue1);
150150
Assert.Single(values.Value1);
151151
Assert.False(values.HasValue2);
152-
Assert.Empty(values.Value2!);
152+
AssertEx.Empty(values.Value2);
153153
Assert.Equal(new List<object>() { 1 }, values.Cast<object>().ToList());
154154
}
155155

@@ -173,7 +173,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue()
173173
Assert.False(values.HasValue1);
174174
Assert.Empty(values.Value1);
175175
Assert.False(values.HasValue2);
176-
Assert.Empty(values.Value2!);
176+
AssertEx.Empty(values.Value2);
177177
Assert.True(values.HasValue3);
178178
Assert.Single(values.Value3);
179179
Assert.Equal(new List<object>() { DayOfWeek.Friday }, values.Cast<object>().ToList());
@@ -187,7 +187,7 @@ public void ImplicitConversionOperator_Value4Passed_OnlyValue4HasValue()
187187
Assert.False(values.HasValue1);
188188
Assert.Empty(values.Value1);
189189
Assert.False(values.HasValue2);
190-
Assert.Empty(values.Value2!);
190+
AssertEx.Empty(values.Value2);
191191
Assert.False(values.HasValue3);
192192
Assert.Empty(values.Value3);
193193
Assert.True(values.HasValue4);
@@ -204,7 +204,7 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue
204204
Assert.True(values.HasValue1);
205205
Assert.Equal(2, values.Value1.Count);
206206
Assert.False(values.HasValue2);
207-
Assert.Empty(values.Value2!);
207+
AssertEx.Empty(values.Value2);
208208
Assert.Equal(new List<object>() { 1, 2 }, values.Cast<object>().ToList());
209209
}
210210

@@ -228,7 +228,7 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue
228228
Assert.False(values.HasValue1);
229229
Assert.Empty(values.Value1);
230230
Assert.False(values.HasValue2);
231-
Assert.Empty(values.Value2!);
231+
AssertEx.Empty(values.Value2);
232232
Assert.True(values.HasValue3);
233233
Assert.Equal(2, values.Value3.Count);
234234
Assert.Equal(
@@ -244,7 +244,7 @@ public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue
244244
Assert.False(values.HasValue1);
245245
Assert.Empty(values.Value1);
246246
Assert.False(values.HasValue2);
247-
Assert.Empty(values.Value2!);
247+
AssertEx.Empty(values.Value2);
248248
Assert.False(values.HasValue3);
249249
Assert.Empty(values.Value3);
250250
Assert.True(values.HasValue4);

Tests/Schema.NET.Test/Values5Test.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue()
1515
Assert.True(values.HasValue1);
1616
Assert.Single(values.Value1);
1717
Assert.False(values.HasValue2);
18-
Assert.Empty(values.Value2!);
18+
AssertEx.Empty(values.Value2);
1919
Assert.False(values.HasValue3);
2020
Assert.Empty(values.Value3);
2121
Assert.False(values.HasValue4);
@@ -51,7 +51,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue()
5151
Assert.False(values.HasValue1);
5252
Assert.Empty(values.Value1);
5353
Assert.False(values.HasValue2);
54-
Assert.Empty(values.Value2!);
54+
AssertEx.Empty(values.Value2);
5555
Assert.True(values.HasValue3);
5656
Assert.Single(values.Value3);
5757
Assert.False(values.HasValue4);
@@ -69,7 +69,7 @@ public void Constructor_Value4Passed_OnlyValue4HasValue()
6969
Assert.False(values.HasValue1);
7070
Assert.Empty(values.Value1);
7171
Assert.False(values.HasValue2);
72-
Assert.Empty(values.Value2!);
72+
AssertEx.Empty(values.Value2);
7373
Assert.False(values.HasValue3);
7474
Assert.Empty(values.Value3);
7575
Assert.True(values.HasValue4);
@@ -88,7 +88,7 @@ public void Constructor_Value5Passed_OnlyValue5HasValue()
8888
Assert.False(values.HasValue1);
8989
Assert.Empty(values.Value1);
9090
Assert.False(values.HasValue2);
91-
Assert.Empty(values.Value2!);
91+
AssertEx.Empty(values.Value2);
9292
Assert.False(values.HasValue3);
9393
Assert.Empty(values.Value3);
9494
Assert.False(values.HasValue4);
@@ -196,7 +196,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue()
196196
Assert.True(values.HasValue1);
197197
Assert.Single(values.Value1);
198198
Assert.False(values.HasValue2);
199-
Assert.Empty(values.Value2!);
199+
AssertEx.Empty(values.Value2);
200200
Assert.False(values.HasValue3);
201201
Assert.Empty(values.Value3);
202202
Assert.False(values.HasValue4);
@@ -232,7 +232,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue()
232232
Assert.False(values.HasValue1);
233233
Assert.Empty(values.Value1);
234234
Assert.False(values.HasValue2);
235-
Assert.Empty(values.Value2!);
235+
AssertEx.Empty(values.Value2);
236236
Assert.True(values.HasValue3);
237237
Assert.Single(values.Value3);
238238
Assert.False(values.HasValue4);
@@ -250,7 +250,7 @@ public void ImplicitConversionOperator_Value4Passed_OnlyValue4HasValue()
250250
Assert.False(values.HasValue1);
251251
Assert.Empty(values.Value1);
252252
Assert.False(values.HasValue2);
253-
Assert.Empty(values.Value2!);
253+
AssertEx.Empty(values.Value2);
254254
Assert.False(values.HasValue3);
255255
Assert.Empty(values.Value3);
256256
Assert.True(values.HasValue4);
@@ -269,7 +269,7 @@ public void ImplicitConversionOperator_Value5Passed_OnlyValue5HasValue()
269269
Assert.False(values.HasValue1);
270270
Assert.Empty(values.Value1);
271271
Assert.False(values.HasValue2);
272-
Assert.Empty(values.Value2!);
272+
AssertEx.Empty(values.Value2);
273273
Assert.False(values.HasValue3);
274274
Assert.Empty(values.Value3);
275275
Assert.False(values.HasValue4);
@@ -288,7 +288,7 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue
288288
Assert.True(values.HasValue1);
289289
Assert.Equal(2, values.Value1.Count);
290290
Assert.False(values.HasValue2);
291-
Assert.Empty(values.Value2!);
291+
AssertEx.Empty(values.Value2);
292292
Assert.False(values.HasValue3);
293293
Assert.Empty(values.Value3);
294294
Assert.False(values.HasValue4);
@@ -324,7 +324,7 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue
324324
Assert.False(values.HasValue1);
325325
Assert.Empty(values.Value1);
326326
Assert.False(values.HasValue2);
327-
Assert.Empty(values.Value2!);
327+
AssertEx.Empty(values.Value2);
328328
Assert.True(values.HasValue3);
329329
Assert.Equal(2, values.Value3.Count);
330330
Assert.False(values.HasValue4);
@@ -344,7 +344,7 @@ public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue
344344
Assert.False(values.HasValue1);
345345
Assert.Empty(values.Value1);
346346
Assert.False(values.HasValue2);
347-
Assert.Empty(values.Value2!);
347+
AssertEx.Empty(values.Value2);
348348
Assert.False(values.HasValue3);
349349
Assert.Empty(values.Value3);
350350
Assert.True(values.HasValue4);
@@ -362,7 +362,7 @@ public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue
362362
Assert.False(values.HasValue1);
363363
Assert.Empty(values.Value1);
364364
Assert.False(values.HasValue2);
365-
Assert.Empty(values.Value2!);
365+
AssertEx.Empty(values.Value2);
366366
Assert.False(values.HasValue3);
367367
Assert.Empty(values.Value3);
368368
Assert.False(values.HasValue4);

0 commit comments

Comments
 (0)