-
-
Notifications
You must be signed in to change notification settings - Fork 154
/
Copy pathCombinationSample.cs
73 lines (61 loc) · 1.82 KB
/
CombinationSample.cs
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
// ReSharper disable MemberCanBePrivate.Global
#if NET8_0_OR_GREATER
public class CombinationSample
{
#region CombinationTargetMethod
public static string BuildAddress(int streetNumber, string street, string city)
{
ArgumentException.ThrowIfNullOrWhiteSpace(street);
ArgumentException.ThrowIfNullOrWhiteSpace(city);
ArgumentOutOfRangeException.ThrowIfLessThan(streetNumber, 1);
return $"{streetNumber} {street}, {city}";
}
#endregion
#region CombinationSample
[Fact]
public Task BuildAddressTest()
{
int[] streetNumbers = [1, 10];
string[] streets = ["Smith St", "Wallace St"];
string[] cities = ["Sydney", "Chicago"];
return Combination()
.Verify(
BuildAddress,
streetNumbers,
streets,
cities);
}
#endregion
#region CombinationAlignment
[Fact]
public Task CombinationAlignment()
{
int[] numbers = [1, 100];
string[] strings = ["a", "bbbb"];
Date?[] dates = [new(2020, 10, 1), null, Date.MinValue];
return Combination()
.Verify(
(number, text, date) => string.Join(" ", number, text, date?.ToString("yyyy-MM-dd")),
numbers,
strings,
dates);
}
#endregion
#region CombinationSample_CaptureExceptions
[Fact]
public Task BuildAddressExceptionsTest()
{
int[] streetNumbers = [-1, 0, 10];
string[] streets = ["", " ", "Valid St"];
string[] cities = [null!, "Valid City"];
return Combination(captureExceptions: true)
.Verify(
BuildAddress,
streetNumbers,
streets,
cities
);
}
#endregion
}
#endif