Skip to content

Commit d475b06

Browse files
committed
.
1 parent ed17bc9 commit d475b06

File tree

4 files changed

+63
-41
lines changed

4 files changed

+63
-41
lines changed

src/Verify/Serialization/Scrubbers/ApplyScrubbers.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
static class ApplyScrubbers
44
{
5-
public static void ApplyForExtension(string extension, StringBuilder target, VerifySettings settings, Counter counter)
5+
public static void ApplyForExtension(string? extension, StringBuilder target, VerifySettings settings, Counter counter)
66
{
7-
if (!settings.ScrubbersEnabled)
7+
if (!settings.ScrubbersEnabled || extension == null)
88
{
99
target.FixNewlines();
1010
return;

src/Verify/Splitters/Settings_Extension.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,19 @@ public static partial class VerifierSettings
44
{
55
static Dictionary<string, AsyncStreamConversion> extensionConverters = [];
66

7-
internal static bool TryGetStreamConverter(string extension, [NotNullWhen(true)] out AsyncStreamConversion? converter) =>
8-
extensionConverters.TryGetValue(extension, out converter);
7+
internal static bool TryGetStreamConverter([NotNullWhen(true)] string? extension, [NotNullWhen(true)] out AsyncStreamConversion? converter)
8+
{
9+
if (extension == null)
10+
{
11+
converter = null;
12+
return false;
13+
}
14+
15+
return extensionConverters.TryGetValue(extension, out converter);
16+
}
917

10-
internal static bool HasStreamConverter(string extension) =>
11-
extensionConverters.ContainsKey(extension);
18+
internal static bool HasStreamConverter([NotNullWhen(true)] string? extension) =>
19+
extension != null && extensionConverters.ContainsKey(extension);
1220

1321
[Obsolete("Use RegisterStreamConverter instead")]
1422
public static void RegisterFileConverter(

src/Verify/Target.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public readonly struct Target
44
{
55
readonly StringBuilder? stringBuilderData;
66
readonly Stream? streamData;
7-
public string Extension { get; }
7+
public string? Extension { get; }
88
public string? Name { get; } = null;
99
public bool PerformConversion { get; } = true;
1010
public string NameOrTarget => Name ?? "target";

src/Verify/Verifier/InnerVerifier.cs

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -132,27 +132,31 @@ public InnerVerifier(string directory, string name, VerifySettings? settings = n
132132
verifiedFiles = MatchingFileFinder.FindVerified(name, directory);
133133

134134
getFileNames = target =>
135-
new(
136-
target.Extension,
137-
$"{prefix}.received.{target.Extension}",
138-
$"{prefix}.verified.{target.Extension}",
135+
{
136+
var extension = target.Extension ?? this.settings.TxtOrJson;
137+
return new(
138+
extension,
139+
$"{prefix}.received.{extension}",
140+
$"{prefix}.verified.{extension}",
139141
target.IsString);
142+
};
140143

141144
getIndexedFileNames = (target, index) =>
142145
{
146+
var extension = target.Extension ?? this.settings.TxtOrJson;
143147
if (target.Name is null)
144148
{
145149
return new(
146-
target.Extension,
147-
$"{prefix}#{index}.received.{target.Extension}",
148-
$"{prefix}#{index}.verified.{target.Extension}",
150+
extension,
151+
$"{prefix}#{index}.received.{extension}",
152+
$"{prefix}#{index}.verified.{extension}",
149153
target.IsString);
150154
}
151155

152156
return new(
153-
target.Extension,
154-
$"{prefix}#{target.Name}.{index}.received.{target.Extension}",
155-
$"{prefix}#{target.Name}.{index}.verified.{target.Extension}",
157+
extension,
158+
$"{prefix}#{target.Name}.{index}.received.{extension}",
159+
$"{prefix}#{target.Name}.{index}.verified.{extension}",
156160
target.IsString);
157161
};
158162
}
@@ -197,18 +201,20 @@ void InitForDirectoryConvention(Namer namer, string typeAndMethod, Action<String
197201

198202
getFileNames = target =>
199203
{
200-
var fileName = $"{target.NameOrTarget}.{target.Extension}";
204+
var extension = target.Extension ?? settings.TxtOrJson;
205+
var fileName = $"{target.NameOrTarget}.{extension}";
201206
return new(
202-
target.Extension,
207+
extension,
203208
Path.Combine(receivedDirectory, fileName),
204209
Path.Combine(verifiedDirectory, fileName),
205210
target.IsString);
206211
};
207212
getIndexedFileNames = (target, index) =>
208213
{
209-
var fileName = $"{target.NameOrTarget}#{index}.{target.Extension}";
214+
var extension = target.Extension ?? settings.TxtOrJson;
215+
var fileName = $"{target.NameOrTarget}#{index}.{extension}";
210216
return new(
211-
target.Extension,
217+
extension,
212218
Path.Combine(receivedDirectory, fileName),
213219
Path.Combine(verifiedDirectory, fileName),
214220
target.IsString);
@@ -222,17 +228,23 @@ void InitForDirectoryConvention(Namer namer, string typeAndMethod, Action<String
222228
verifiedFiles = IoHelpers.Files(directoryPrefix, "*.verified.*");
223229

224230
getFileNames = target =>
225-
new(
226-
target.Extension,
227-
Path.Combine(directoryPrefix, $"{target.NameOrTarget}.received.{target.Extension}"),
228-
Path.Combine(directoryPrefix, $"{target.NameOrTarget}.verified.{target.Extension}"),
231+
{
232+
var extension = target.Extension ?? settings.TxtOrJson;
233+
return new(
234+
extension,
235+
Path.Combine(directoryPrefix, $"{target.NameOrTarget}.received.{extension}"),
236+
Path.Combine(directoryPrefix, $"{target.NameOrTarget}.verified.{extension}"),
229237
target.IsString);
238+
};
230239
getIndexedFileNames = (target, index) =>
231-
new(
232-
target.Extension,
233-
Path.Combine(directoryPrefix, $"{target.NameOrTarget}#{index}.received.{target.Extension}"),
234-
Path.Combine(directoryPrefix, $"{target.NameOrTarget}#{index}.verified.{target.Extension}"),
240+
{
241+
var extension = target.Extension ?? settings.TxtOrJson;
242+
return new(
243+
extension,
244+
Path.Combine(directoryPrefix, $"{target.NameOrTarget}#{index}.received.{extension}"),
245+
Path.Combine(directoryPrefix, $"{target.NameOrTarget}#{index}.verified.{extension}"),
235246
target.IsString);
247+
};
236248

237249
IoHelpers.DeleteFiles(directoryPrefix, "*.received.*");
238250
}
@@ -275,36 +287,38 @@ void InitForFileConvention(Namer namer, string typeAndMethod, Action<StringBuild
275287

276288
getFileNames = target =>
277289
{
290+
var extension = target.Extension ?? settings.TxtOrJson;
278291
if (target.Name is null)
279292
{
280293
return new(
281-
target.Extension,
282-
$"{pathPrefixReceived}.received.{target.Extension}",
283-
$"{pathPrefixVerified}.verified.{target.Extension}",
294+
extension,
295+
$"{pathPrefixReceived}.received.{extension}",
296+
$"{pathPrefixVerified}.verified.{extension}",
284297
target.IsString);
285298
}
286299

287300
return new(
288-
target.Extension,
289-
$"{pathPrefixReceived}#{target.Name}.received.{target.Extension}",
290-
$"{pathPrefixVerified}#{target.Name}.verified.{target.Extension}",
301+
extension,
302+
$"{pathPrefixReceived}#{target.Name}.received.{extension}",
303+
$"{pathPrefixVerified}#{target.Name}.verified.{extension}",
291304
target.IsString);
292305
};
293306
getIndexedFileNames = (target, index) =>
294307
{
308+
var extension = target.Extension ?? settings.TxtOrJson;
295309
if (target.Name is null)
296310
{
297311
return new(
298-
target.Extension,
299-
$"{pathPrefixReceived}#{index}.received.{target.Extension}",
300-
$"{pathPrefixVerified}#{index}.verified.{target.Extension}",
312+
extension,
313+
$"{pathPrefixReceived}#{index}.received.{extension}",
314+
$"{pathPrefixVerified}#{index}.verified.{extension}",
301315
target.IsString);
302316
}
303317

304318
return new(
305-
target.Extension,
306-
$"{pathPrefixReceived}#{target.Name}.{index}.received.{target.Extension}",
307-
$"{pathPrefixVerified}#{target.Name}.{index}.verified.{target.Extension}",
319+
extension,
320+
$"{pathPrefixReceived}#{target.Name}.{index}.received.{extension}",
321+
$"{pathPrefixVerified}#{target.Name}.{index}.verified.{extension}",
308322
target.IsString);
309323
};
310324

0 commit comments

Comments
 (0)