diff --git a/docs/guids.md b/docs/guids.md index f7ffb1249..c6e5d9027 100644 --- a/docs/guids.md +++ b/docs/guids.md @@ -151,16 +151,17 @@ Specific Guids can be named. When any of those Guids are found, it will be repla public Task NamedGuidInstance() { var settings = new VerifySettings(); - settings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"), "instanceNamed"); + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + settings.AddNamedGuid(guid, "instanceNamed"); return Verify( new { - value = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9") + value = guid }, settings); } ``` -snippet source | anchor +snippet source | anchor @@ -170,15 +171,18 @@ public Task NamedGuidInstance() ```cs [Fact] -public Task NamedGuidFluent() => - Verify( +public Task NamedGuidFluent() +{ + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + return Verify( new { - value = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9") + value = guid }) - .AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"), "instanceNamed"); + .AddNamedGuid(guid, "instanceNamed"); +} ``` -snippet source | anchor +snippet source | anchor @@ -188,8 +192,7 @@ public Task NamedGuidFluent() => ```cs [ModuleInitializer] -public static void Init() => - VerifierSettings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40c9"), "guidName"); +public static void Init() => VerifierSettings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40c9"), "guidName"); ``` -snippet source | anchor +snippet source | anchor diff --git a/src/StrictJsonTests/SerializationTests.ScrubDateTimeInstance.verified.json b/src/StrictJsonTests/SerializationTests.ScrubDateTimeInstance.verified.json index c22819715..20fa3ce59 100644 --- a/src/StrictJsonTests/SerializationTests.ScrubDateTimeInstance.verified.json +++ b/src/StrictJsonTests/SerializationTests.ScrubDateTimeInstance.verified.json @@ -1,21 +1,21 @@ { "DateTime": "DateTime_1", "NamedDateTime": "namedDateTime", - "InstanceNamedDateTime": "DateTime_2", - "DateTimeNullable": "DateTime_3", + "InstanceNamedDateTime": "instanceNamedDateTime", + "DateTimeNullable": "DateTime_2", "Date": "Date_1", "NamedDate": "Date_1", - "InstanceNamedDate": "Date_2", + "InstanceNamedDate": "instanceNamedDate", "Time": "Time_1", "TimeString": "Time_1", "NamedTime": "namedTime", - "InstanceNamedTime": "Time_2", - "DateNullable": "Date_3", + "InstanceNamedTime": "instanceTime", + "DateNullable": "Date_2", "NamedDateTimeOffset": "namedDateTimeOffset", - "InstanceNamedDateTimeOffset": "DateTimeOffset_1", - "DateTimeOffset": "DateTimeOffset_2", - "DateTimeOffsetNullable": "DateTimeOffset_3", - "DateTimeString": "DateTimeOffset_4", - "DateTimeOffsetString": "DateTimeOffset_4", - "DateString": "Date_3" + "InstanceNamedDateTimeOffset": "instanceNamedTimeOffset", + "DateTimeOffset": "DateTimeOffset_1", + "DateTimeOffsetNullable": "DateTimeOffset_2", + "DateTimeString": "DateTimeOffset_3", + "DateTimeOffsetString": "DateTimeOffset_3", + "DateString": "Date_2" } \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateInstance.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateInstance.verified.txt index f2109384f..d663558e3 100644 --- a/src/Verify.Tests/DateScrubberTests.NamedDateInstance.verified.txt +++ b/src/Verify.Tests/DateScrubberTests.NamedDateInstance.verified.txt @@ -1,3 +1,3 @@ { - value: Date_1 + value: instanceNamed } \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeInstance.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeInstance.verified.txt index 5ca3625ad..d663558e3 100644 --- a/src/Verify.Tests/DateScrubberTests.NamedDateTimeInstance.verified.txt +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeInstance.verified.txt @@ -1,3 +1,3 @@ { - value: DateTime_1 + value: instanceNamed } \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetInstance.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetInstance.verified.txt index 20bc54dec..d663558e3 100644 --- a/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetInstance.verified.txt +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetInstance.verified.txt @@ -1,3 +1,3 @@ { - value: DateTimeOffset_1 + value: instanceNamed } \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelFluent.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelFluent.verified.txt new file mode 100644 index 000000000..bb82d6dae --- /dev/null +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelFluent.verified.txt @@ -0,0 +1 @@ +2020-10-01 10:15:30 +0 \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelGlobal.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelGlobal.verified.txt new file mode 100644 index 000000000..bb82d6dae --- /dev/null +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelGlobal.verified.txt @@ -0,0 +1 @@ +2020-10-01 10:15:30 +0 \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelInstance.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelInstance.verified.txt new file mode 100644 index 000000000..bb82d6dae --- /dev/null +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeOffsetTopLevelInstance.verified.txt @@ -0,0 +1 @@ +2020-10-01 10:15:30 +0 \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelFluent.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelFluent.verified.txt new file mode 100644 index 000000000..c0f2e571c --- /dev/null +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelFluent.verified.txt @@ -0,0 +1 @@ +1935-10-01 10:15:30 Utc \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelInstance.verified.txt b/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelInstance.verified.txt new file mode 100644 index 000000000..c0f2e571c --- /dev/null +++ b/src/Verify.Tests/DateScrubberTests.NamedDateTimeTopLevelInstance.verified.txt @@ -0,0 +1 @@ +1935-10-01 10:15:30 Utc \ No newline at end of file diff --git a/src/Verify.Tests/DateScrubberTests.cs b/src/Verify.Tests/DateScrubberTests.cs index 5cb4010a5..0d1511b67 100644 --- a/src/Verify.Tests/DateScrubberTests.cs +++ b/src/Verify.Tests/DateScrubberTests.cs @@ -217,13 +217,15 @@ public Task NamedDates(string value, string name) => [Fact] public Task NamedDateInstance() { + var dateOnly = new Date(1935, 10, 1); var settings = new VerifySettings(); - settings.AddNamedDate(new(1935, 10, 1), "instanceNamed"); + settings.AddNamedDate(dateOnly, "instanceNamed"); return Verify( new { - value = new Date(1935, 10, 1) - }); + value = dateOnly + }, + settings); } #endregion @@ -231,13 +233,16 @@ public Task NamedDateInstance() #region NamedDateFluent [Fact] - public Task NamedDateFluent() => - Verify( + public Task NamedDateFluent() + { + var dateOnly = new Date(1935, 10, 1); + return Verify( new { - value = new Date(1935, 10, 1) + value = dateOnly }) - .AddNamedDate(new(1935, 10, 1), "instanceNamed"); + .AddNamedDate(dateOnly, "instanceNamed"); + } #endregion @@ -249,16 +254,28 @@ public Task NamedDateFluent() => public Task NamedDateTimeInstance() { var settings = new VerifySettings(); - settings.AddNamedDateTime(new(1935, 10, 1), "instanceNamed"); + var dateTime = new DateTime(1935, 10, 1); + settings.AddNamedDateTime(dateTime, "instanceNamed"); return Verify( new { - value = new DateTime(1935, 10, 1) - }); + value = dateTime + }, + settings); } #endregion + //top level should not scrub + [Fact] + public Task NamedDateTimeTopLevelInstance() + { + var settings = new VerifySettings(); + var dateTime = new DateTime(1935, 10, 1, 10, 15, 30, DateTimeKind.Utc); + settings.AddNamedDateTime(dateTime, "instanceNamed"); + return Verify(dateTime, settings); + } + #region NamedDateTimeFluent [Fact] @@ -272,32 +289,67 @@ public Task NamedDateTimeFluent() => #endregion + [Fact] + public Task NamedDateTimeTopLevelFluent() + { + var dateTime = new DateTime(1935, 10, 1, 10, 15, 30, DateTimeKind.Utc); + return Verify(dateTime) + .AddNamedDateTime(dateTime, "instanceNamed"); + } + #region NamedDateTimeOffsetInstance [Fact] public Task NamedDateTimeOffsetInstance() { var settings = new VerifySettings(); - settings.AddNamedDateTimeOffset(new(new(1935, 10, 1)), "instanceNamed"); + var dateTimeOffset = new DateTimeOffset(new(1935, 10, 1)); + settings.AddNamedDateTimeOffset(dateTimeOffset, "instanceNamed"); return Verify( new { - value = new DateTimeOffset(new(1935, 10, 1)) - }); + value = dateTimeOffset + }, + settings); } #endregion + //top level should not scrub + [Fact] + public Task NamedDateTimeOffsetTopLevelInstance() + { + var settings = new VerifySettings(); + var dateTimeOffset = new DateTimeOffset(2020, 10, 1, 10, 15, 30, TimeSpan.Zero); + settings.AddNamedDateTimeOffset(dateTimeOffset, "instanceNamed"); + return Verify(dateTimeOffset, settings); + } + #region NamedDateTimeOffsetFluent [Fact] - public Task NamedDateTimeOffsetFluent() => - Verify( + public Task NamedDateTimeOffsetFluent() + { + var dateTimeOffset = new DateTimeOffset(new(1935, 10, 1)); + return Verify( new { - value = new DateTimeOffset(new(1935, 10, 1)) + value = dateTimeOffset }) - .AddNamedDateTimeOffset(new(new(1935, 10, 1)), "instanceNamed"); + .AddNamedDateTimeOffset(dateTimeOffset, "instanceNamed"); + } #endregion + + [Fact] + public Task NamedDateTimeOffsetTopLevelFluent() + { + var dateTimeOffset = new DateTimeOffset(2020, 10, 1, 10, 15, 30, TimeSpan.Zero); + return Verify(dateTimeOffset) + .AddNamedDateTimeOffset(dateTimeOffset, "instanceNamed"); + } + + [Fact] + public Task NamedDateTimeOffsetTopLevelGlobal() => + Verify(new DateTimeOffset(2020, 10, 1, 10, 15, 30, TimeSpan.Zero)); } \ No newline at end of file diff --git a/src/Verify.Tests/GuidScrubberTests.NamedGuidInstance.verified.txt b/src/Verify.Tests/GuidScrubberTests.NamedGuidInstance.verified.txt index 23d3603fd..d663558e3 100644 --- a/src/Verify.Tests/GuidScrubberTests.NamedGuidInstance.verified.txt +++ b/src/Verify.Tests/GuidScrubberTests.NamedGuidInstance.verified.txt @@ -1,3 +1,3 @@ { - value: Guid_1 + value: instanceNamed } \ No newline at end of file diff --git a/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelFluent.verified.txt b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelFluent.verified.txt new file mode 100644 index 000000000..a41f21f17 --- /dev/null +++ b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelFluent.verified.txt @@ -0,0 +1 @@ +c8eeaf99-d5c4-4341-8543-4597c3fd40d9 \ No newline at end of file diff --git a/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelGlobal.verified.txt b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelGlobal.verified.txt new file mode 100644 index 000000000..1674f9abf --- /dev/null +++ b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelGlobal.verified.txt @@ -0,0 +1 @@ +c8eeaf99-d5c4-4341-8543-4597c3fd40c9 \ No newline at end of file diff --git a/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelInstance.verified.txt b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelInstance.verified.txt new file mode 100644 index 000000000..a41f21f17 --- /dev/null +++ b/src/Verify.Tests/GuidScrubberTests.NamedGuidTopLevelInstance.verified.txt @@ -0,0 +1 @@ +c8eeaf99-d5c4-4341-8543-4597c3fd40d9 \ No newline at end of file diff --git a/src/Verify.Tests/GuidScrubberTests.cs b/src/Verify.Tests/GuidScrubberTests.cs index dadc1c9f5..26732eed4 100644 --- a/src/Verify.Tests/GuidScrubberTests.cs +++ b/src/Verify.Tests/GuidScrubberTests.cs @@ -3,8 +3,7 @@ public class GuidScrubberTests #region NamedGuidGlobal [ModuleInitializer] - public static void Init() => - VerifierSettings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40c9"), "guidName"); + public static void Init() => VerifierSettings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40c9"), "guidName"); #endregion @@ -67,27 +66,53 @@ public Task NamedGuids(string guid, string name) => public Task NamedGuidInstance() { var settings = new VerifySettings(); - settings.AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"), "instanceNamed"); + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + settings.AddNamedGuid(guid, "instanceNamed"); return Verify( new { - value = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9") + value = guid }, settings); } #endregion + //top level should not scrub + [Fact] + public Task NamedGuidTopLevelInstance() + { + var settings = new VerifySettings(); + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + settings.AddNamedGuid(guid, "instanceNamed"); + return Verify(guid, settings); + } + #region NamedGuidFluent [Fact] - public Task NamedGuidFluent() => - Verify( + public Task NamedGuidFluent() + { + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + return Verify( new { - value = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9") + value = guid }) - .AddNamedGuid(new("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"), "instanceNamed"); + .AddNamedGuid(guid, "instanceNamed"); + } #endregion + + [Fact] + public Task NamedGuidTopLevelFluent() + { + var guid = new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40d9"); + return Verify(guid) + .AddNamedGuid(guid, "instanceNamed"); + } + + [Fact] + public Task NamedGuidTopLevelGlobal() => + Verify(new Guid("c8eeaf99-d5c4-4341-8543-4597c3fd40c9")); } \ No newline at end of file diff --git a/src/Verify.Tests/Serialization/SerializationTests.ScrubDateTimeInstance.verified.txt b/src/Verify.Tests/Serialization/SerializationTests.ScrubDateTimeInstance.verified.txt index b74f10bd2..26ba3c5ec 100644 --- a/src/Verify.Tests/Serialization/SerializationTests.ScrubDateTimeInstance.verified.txt +++ b/src/Verify.Tests/Serialization/SerializationTests.ScrubDateTimeInstance.verified.txt @@ -1,21 +1,21 @@ { DateTime: DateTime_1, NamedDateTime: namedDateTime, - InstanceNamedDateTime: DateTime_2, - DateTimeNullable: DateTime_3, + InstanceNamedDateTime: instanceNamedDateTime, + DateTimeNullable: DateTime_2, Date: Date_1, NamedDate: Date_1, - InstanceNamedDate: Date_2, + InstanceNamedDate: instanceNamedDate, Time: Time_1, TimeString: Time_1, NamedTime: namedTime, - InstanceNamedTime: Time_2, - DateNullable: Date_3, + InstanceNamedTime: instanceTime, + DateNullable: Date_2, NamedDateTimeOffset: namedDateTimeOffset, - InstanceNamedDateTimeOffset: DateTimeOffset_1, - DateTimeOffset: DateTimeOffset_2, - DateTimeOffsetNullable: DateTimeOffset_3, - DateTimeString: DateTimeOffset_4, - DateTimeOffsetString: DateTimeOffset_4, - DateString: Date_3 + InstanceNamedDateTimeOffset: instanceNamedTimeOffset, + DateTimeOffset: DateTimeOffset_1, + DateTimeOffsetNullable: DateTimeOffset_2, + DateTimeString: DateTimeOffset_3, + DateTimeOffsetString: DateTimeOffset_3, + DateString: Date_2 } \ No newline at end of file diff --git a/src/Verify/VerifySettings.cs b/src/Verify/VerifySettings.cs index 033a9fcf5..e4c53751f 100644 --- a/src/Verify/VerifySettings.cs +++ b/src/Verify/VerifySettings.cs @@ -14,6 +14,7 @@ internal string TxtOrJson return "txt"; } } + public VerifySettings(VerifySettings? settings) { if (settings is null) @@ -43,6 +44,13 @@ public VerifySettings(VerifySettings? settings) UniquePrefixDisabled = settings.UniquePrefixDisabled; UseUniqueDirectorySplitMode = settings.UseUniqueDirectorySplitMode; Namer = new(settings.Namer); +#if NET6_0_OR_GREATER + namedDates = new(settings.namedDates); + namedTimes = new(settings.namedTimes); +#endif + namedGuids = new(settings.namedGuids); + namedDateTimes = new(settings.namedDateTimes); + namedDateTimeOffsets = new(settings.namedDateTimeOffsets); foreach (var append in settings.Appends) { if (append.Data is ICloneable cloneable)