Skip to content

Commit a0f0a31

Browse files
committed
.
1 parent 12762d6 commit a0f0a31

5 files changed

+156
-25
lines changed

src/Verify.Tests/Naming/NameForParameterTests.cs

+77-24
Original file line numberDiff line numberDiff line change
@@ -2,62 +2,83 @@
22
{
33
[Fact]
44
public Task Null() =>
5-
Verify(VerifierSettings.GetNameForParameter(null));
5+
Verify(VerifierSettings.GetNameForParameter(null, counter: Counter()));
66

77
[Fact]
88
public Task StringEmpty() =>
9-
Verify(VerifierSettings.GetNameForParameter(""));
9+
Verify(VerifierSettings.GetNameForParameter("", counter: Counter()));
1010

1111
[Fact]
1212
public Task StringInvalidPathChar() =>
13-
Verify(VerifierSettings.GetNameForParameter("a/a"));
13+
Verify(VerifierSettings.GetNameForParameter("a/a", counter: Counter()));
1414

1515
[Fact]
1616
public Task Int() =>
17-
Verify(VerifierSettings.GetNameForParameter(10));
17+
Verify(VerifierSettings.GetNameForParameter(10, counter: Counter()));
1818

1919
#if NET6_0_OR_GREATER
2020
[Fact]
2121
public Task Half() =>
22-
Verify(VerifierSettings.GetNameForParameter((Half) 10));
22+
Verify(
23+
VerifierSettings.GetNameForParameter(
24+
(Half) 10,
25+
counter: Counter()));
2326
#endif
2427

2528
#if NET6_0_OR_GREATER
2629
[Fact]
2730
public Task Date() =>
28-
Verify(VerifierSettings.GetNameForParameter(new Date(2000, 10, 1)));
31+
Verify(
32+
VerifierSettings.GetNameForParameter(
33+
new Date(2000, 10, 1),
34+
counter: Counter()));
2935

3036
[Fact]
3137
public Task Time() =>
32-
Verify(VerifierSettings.GetNameForParameter(new Date(2000, 10, 1)));
38+
Verify(
39+
VerifierSettings.GetNameForParameter(
40+
new Date(2000, 10, 1),
41+
counter: Counter()));
3342
#endif
3443

3544
[Fact]
3645
public Task DateTimeLocal()
3746
{
3847
var date = new DateTime(2000, 10, 1, 0, 0, 0, DateTimeKind.Local);
39-
return Verify(VerifierSettings.GetNameForParameter(date));
48+
return Verify(
49+
VerifierSettings.GetNameForParameter(
50+
date,
51+
counter: Counter()));
4052
}
4153

4254
[Fact]
4355
public Task DateTimeUnspecified()
4456
{
4557
var date = new DateTime(2000, 10, 1, 0, 0, 0);
46-
return Verify(VerifierSettings.GetNameForParameter(date));
58+
return Verify(
59+
VerifierSettings.GetNameForParameter(
60+
date,
61+
counter: Counter()));
4762
}
4863

4964
[Fact]
5065
public Task DateTimeUtc()
5166
{
5267
var date = new DateTime(2000, 10, 1, 0, 0, 0, DateTimeKind.Utc);
53-
return Verify(VerifierSettings.GetNameForParameter(date));
68+
return Verify(
69+
VerifierSettings.GetNameForParameter(
70+
date,
71+
counter: Counter()));
5472
}
5573

5674
[Fact]
5775
public Task DateTimeOffsetUtc()
5876
{
5977
var date = new DateTimeOffset(2000, 10, 1, 0, 0, 0, TimeSpan.Zero);
60-
return Verify(VerifierSettings.GetNameForParameter(date));
78+
return Verify(
79+
VerifierSettings.GetNameForParameter(
80+
date,
81+
counter: Counter()));
6182
}
6283

6384
[Fact]
@@ -66,16 +87,19 @@ public Task List() =>
6687
new List<string>
6788
{
6889
"value"
69-
}));
90+
},
91+
counter: Counter()));
7092

7193
[Fact]
7294
public Task ListMultiple() =>
73-
Verify(VerifierSettings.GetNameForParameter(
95+
Verify(
96+
VerifierSettings.GetNameForParameter(
7497
new List<string>
7598
{
7699
"value1",
77100
"value2"
78-
}));
101+
},
102+
counter: Counter()));
79103

80104
[Fact]
81105
public Task Nested() =>
@@ -93,11 +117,15 @@ public Task Nested() =>
93117
}
94118
},
95119
"value4"
96-
}));
120+
},
121+
counter: Counter()));
97122

98123
[Fact]
99124
public Task EmptyList() =>
100-
Verify(VerifierSettings.GetNameForParameter(new List<string>()));
125+
Verify(
126+
VerifierSettings.GetNameForParameter(
127+
new List<string>(),
128+
counter: Counter()));
101129

102130
[Fact]
103131
public Task Dictionary() =>
@@ -107,7 +135,8 @@ public Task Dictionary() =>
107135
{
108136
"value", 10
109137
}
110-
}));
138+
},
139+
counter: Counter()));
111140

112141
[Fact]
113142
public Task DictionaryMultiple() =>
@@ -120,23 +149,43 @@ public Task DictionaryMultiple() =>
120149
{
121150
"value2", 11
122151
}
123-
}));
152+
},
153+
counter: Counter()));
124154

125155
[Fact]
126156
public Task EmptyDictionary() =>
127-
Verify(VerifierSettings.GetNameForParameter(new Dictionary<string, int>()));
157+
Verify(
158+
VerifierSettings.GetNameForParameter(
159+
new Dictionary<string, int>(),
160+
counter: Counter()));
128161

129162
[Fact]
130163
public Task EnumerableStaticEmpty() =>
131-
Verify(VerifierSettings.GetNameForParameter(Enumerable.Empty<string>()));
164+
Verify(
165+
VerifierSettings.GetNameForParameter(
166+
Enumerable.Empty<string>(),
167+
counter: Counter()));
132168

133169
[Fact]
134170
public Task Array() =>
135-
Verify(VerifierSettings.GetNameForParameter(
171+
Verify(
172+
VerifierSettings.GetNameForParameter(
136173
new[]
137174
{
138175
"value"
139-
}));
176+
},
177+
counter: Counter()));
178+
179+
private static Counter Counter() =>
180+
new(
181+
true,
182+
#if NET6_0_OR_GREATER
183+
[],
184+
[],
185+
#endif
186+
[],
187+
[],
188+
[]);
140189

141190
[Fact]
142191
public Task ArrayMultiple() =>
@@ -145,9 +194,13 @@ public Task ArrayMultiple() =>
145194
{
146195
"value1",
147196
"value2"
148-
}));
197+
},
198+
counter: Counter()));
149199

150200
[Fact]
151201
public Task ArrayEmpty() =>
152-
Verify(VerifierSettings.GetNameForParameter(System.Array.Empty<string>()));
202+
Verify(
203+
VerifierSettings.GetNameForParameter(
204+
System.Array.Empty<string>(),
205+
counter: Counter()));
153206
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Content
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Content

src/Verify/Counter.cs

+71-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,76 @@ public partial class Counter
1212
bool dateCounting;
1313
static AsyncLocal<Counter?> local = new();
1414

15+
internal bool TryGetNamed(object value, [NotNullWhen(true)] out string? result)
16+
{
17+
#if NET6_0_OR_GREATER
18+
19+
if (value is Date date)
20+
{
21+
if (namedDates.TryGetValue(date, out result) ||
22+
globalNamedDates.TryGetValue(date, out result))
23+
{
24+
return true;
25+
}
26+
27+
result = null;
28+
return false;
29+
}
30+
31+
if (value is Time time)
32+
{
33+
if (namedTimes.TryGetValue(time, out result) ||
34+
globalNamedTimes.TryGetValue(time, out result))
35+
{
36+
return true;
37+
}
38+
39+
result = null;
40+
return false;
41+
}
42+
43+
#endif
44+
45+
if (value is Guid guid)
46+
{
47+
if (namedGuids.TryGetValue(guid, out result) ||
48+
globalNamedGuids.TryGetValue(guid, out result))
49+
{
50+
return true;
51+
}
52+
53+
result = null;
54+
return false;
55+
}
56+
57+
if (value is DateTime dateTime)
58+
{
59+
if (namedDateTimes.TryGetValue(dateTime, out result) ||
60+
globalNamedDateTimes.TryGetValue(dateTime, out result))
61+
{
62+
return true;
63+
}
64+
65+
result = null;
66+
return false;
67+
}
68+
69+
if (value is DateTimeOffset dateTimeOffset)
70+
{
71+
if (namedDateTimeOffsets.TryGetValue(dateTimeOffset, out result) ||
72+
globalNamedDateTimeOffsets.TryGetValue(dateTimeOffset, out result))
73+
{
74+
return true;
75+
}
76+
77+
result = null;
78+
return false;
79+
}
80+
81+
result = null;
82+
return false;
83+
}
84+
1585
public static Counter Current
1686
{
1787
get
@@ -26,7 +96,7 @@ public static Counter Current
2696
}
2797
}
2898

29-
Counter(
99+
public Counter(
30100
bool dateCounting,
31101
#if NET6_0_OR_GREATER
32102
Dictionary<Date, string> namedDates,

src/Verify/Naming/VerifierSettings.cs

+6
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ internal static void AppendParameter(object? parameter, StringBuilder builder, b
9393
return;
9494
}
9595

96+
if (counter.TryGetNamed(parameter, out var result))
97+
{
98+
builder.Append(result);
99+
return;
100+
}
101+
96102
if (parameter is string stringParameter)
97103
{
98104
if (pathFriendly)

0 commit comments

Comments
 (0)