Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ensure DerivePathInfo is only called once #1430

Merged
merged 4 commits into from
Mar 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/Verify.Expecto/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, string typeName, string
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.Fixie/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
7 changes: 7 additions & 0 deletions src/Verify.MSTest.DerivePaths.Tests/Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ public partial class Tests
[TestMethod]
public Task Test()
{
VerifierSettings.Reset();
DerivePathInfo(
(sourceFile, projectDirectory, methodName, typeName) =>
{
Expand All @@ -26,27 +27,31 @@ public Task Test()
[TestMethod]
public Task ReturnNulls()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null));
return Verify("Value");
}

[TestMethod]
public Task ProjectRelativeDirectory()
{
VerifierSettings.Reset();
UseProjectRelativeDirectory("Relative");
return Verify("Value");
}

[TestMethod]
public Task SourceFileRelativeDirectory()
{
VerifierSettings.Reset();
UseSourceFileRelativeDirectory("Relative");
return Verify("Value");
}

[TestMethod]
public Task InvalidMethod()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -57,6 +62,7 @@ public Task InvalidMethod()
[TestMethod]
public Task InvalidType()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -67,6 +73,7 @@ public Task InvalidType()
[TestMethod]
public Task InvalidDirectory()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(Path
.GetInvalidPathChars()
.First()
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.MSTest/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
7 changes: 7 additions & 0 deletions src/Verify.NUnit.DerivePaths.Tests/Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public class Tests
[Test]
public Task Test()
{
VerifierSettings.Reset();
DerivePathInfo(
(sourceFile, projectDirectory, methodName, typeName) =>
{
Expand All @@ -23,27 +24,31 @@ public Task Test()
[Test]
public Task ReturnNulls()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null));
return Verify("Value");
}

[Test]
public Task ProjectRelativeDirectory()
{
VerifierSettings.Reset();
UseProjectRelativeDirectory("Relative");
return Verify("Value");
}

[Test]
public Task SourceFileRelativeDirectory()
{
VerifierSettings.Reset();
UseSourceFileRelativeDirectory("Relative");
return Verify("Value");
}

[Test]
public void InvalidMethod()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -54,6 +59,7 @@ public void InvalidMethod()
[Test]
public void InvalidType()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -64,6 +70,7 @@ public void InvalidType()
[Test]
public void InvalidDirectory()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(Path
.GetInvalidPathChars()
.First()
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.NUnit/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.TUnit/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
7 changes: 7 additions & 0 deletions src/Verify.Xunit.DerivePaths.Tests/Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[Fact]
public Task Test()
{
VerifierSettings.Reset();
DerivePathInfo(
(sourceFile, projectDirectory, methodName, typeName) =>
{
Expand All @@ -20,27 +21,31 @@ public Task Test()
[Fact]
public Task ReturnNulls()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null));
return Verify("Value");
}

[Fact]
public Task ProjectRelativeDirectory()
{
VerifierSettings.Reset();
UseProjectRelativeDirectory("Relative");
return Verify("Value");
}

[Fact]
public Task SourceFileRelativeDirectory()
{
VerifierSettings.Reset();
UseSourceFileRelativeDirectory("Relative");
return Verify("Value");
}

[Fact]
public Task InvalidMethod()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -51,6 +56,7 @@ public Task InvalidMethod()
[Fact]
public Task InvalidType()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(null, Path
.GetInvalidFileNameChars()
.First()
Expand All @@ -61,6 +67,7 @@ public Task InvalidType()
[Fact]
public Task InvalidDirectory()
{
VerifierSettings.Reset();
DerivePathInfo((_, _, _, _) => new(Path
.GetInvalidPathChars()
.First()
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.Xunit/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
5 changes: 4 additions & 1 deletion src/Verify.XunitV3/DerivePaths/Verifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ internal static PathInfo GetPathInfo(string sourceFile, Type type, MethodInfo me
/// To move to this approach, any existing `.verified.` files will need to be moved to the new directory
/// </remarks>
/// <param name="derivePathInfo">Custom callback to control the behavior.</param>
public static void DerivePathInfo(DerivePathInfo derivePathInfo) =>
public static void DerivePathInfo(DerivePathInfo derivePathInfo)
{
InnerVerifier.ThrowIfVerifyHasBeenRun();
Verifier.derivePathInfo = derivePathInfo;
}

/// <summary>
/// Use a directory relative to the project directory for storing for `.verified.` files.
Expand Down
8 changes: 6 additions & 2 deletions src/Verify/InternalsVisibleTo.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
[assembly: InternalsVisibleTo("Verify.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.MSTest, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.MSTest.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.MSTest.DerivePaths.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.Xunit, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.Xunit.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.Xunit.DerivePaths.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.XunitV3, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.XunitV3.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.XunitV3.DerivePaths.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.NUnit, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.NUnit.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
//[assembly: InternalsVisibleTo("Verify.TUnit, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
//[assembly: InternalsVisibleTo("Verify.TUnit.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.NUnit.DerivePaths.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.TUnit, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.TUnit.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("StrictJsonTests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.Expecto, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
[assembly: InternalsVisibleTo("Verify.Expecto.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000f0a8e4bf1639dce01be6592384e7dfc621915b7759fb5cee42ec5d351bcc43460432da1659ee618ca6cab6b8b8e56a5deb5d4ee1a49783d5c2690752502d31ccbfee9b2c697e20359b55ad100cc9370c8e983fd9496f01d761a060d0435bac7243b1832ba95757aa5adbb67df38c213d717b6751e1217cea9fa5c61e9b799dd")]
Expand Down