Skip to content

Commit

Permalink
Allow sub directory to be configured
Browse files Browse the repository at this point in the history
  • Loading branch information
bradleym committed Jan 8, 2024
1 parent 4d80ca7 commit 76885a2
Show file tree
Hide file tree
Showing 11 changed files with 98 additions and 19 deletions.
14 changes: 7 additions & 7 deletions docs/naming.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ await Verify("valueUseDirectory", settings);
await Verify("valueUseDirectoryFluent")
.UseDirectory("CustomDirectory");
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L212-L217' title='Snippet source file'>snippet source</a> | <a href='#snippet-usedirectoryfluent' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L237-L242' title='Snippet source file'>snippet source</a> | <a href='#snippet-usedirectoryfluent' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Will result in `CustomDirectory/TypeName.MethodName.verified.txt`.
Expand All @@ -55,7 +55,7 @@ var settings = new VerifySettings();
settings.UseTypeName("CustomTypeName");
await Verify("valueUseTypeName", settings);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L311-L317' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetypename' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L359-L365' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetypename' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

<!-- snippet: UseTypeNameFluent -->
Expand All @@ -64,7 +64,7 @@ await Verify("valueUseTypeName", settings);
await Verify("valueUseTypeNameFluent")
.UseTypeName("CustomTypeName");
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L323-L328' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetypenamefluent' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L371-L376' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetypenamefluent' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Will result in `CustomTypeName.MethodName.verified.txt`.
Expand All @@ -81,7 +81,7 @@ var settings = new VerifySettings();
settings.UseMethodName("CustomMethodName");
await Verify("valueUseMethodName", settings);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L334-L340' title='Snippet source file'>snippet source</a> | <a href='#snippet-usemethodname' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L382-L388' title='Snippet source file'>snippet source</a> | <a href='#snippet-usemethodname' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Will result in `TestClass.CustomMethodName.verified.txt`.
Expand All @@ -92,7 +92,7 @@ Will result in `TestClass.CustomMethodName.verified.txt`.
await Verify("valueUseMethodNameFluent")
.UseMethodName("CustomMethodNameFluent");
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L346-L351' title='Snippet source file'>snippet source</a> | <a href='#snippet-usemethodnamefluent' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L394-L399' title='Snippet source file'>snippet source</a> | <a href='#snippet-usemethodnamefluent' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Will result in `TestClass.CustomMethodNameFluent.verified.txt`.
Expand Down Expand Up @@ -565,7 +565,7 @@ To access the current Namer `Runtime` or `RuntimeAndVersion` strings use:
Debug.WriteLine(Namer.Runtime);
Debug.WriteLine(Namer.RuntimeAndVersion);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L357-L362' title='Snippet source file'>snippet source</a> | <a href='#snippet-accessnamerruntimeandversion' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L405-L410' title='Snippet source file'>snippet source</a> | <a href='#snippet-accessnamerruntimeandversion' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


Expand Down Expand Up @@ -724,7 +724,7 @@ var settings = new VerifySettings();
settings.UseUniqueDirectory();
await Verify("TheValue", settings);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L223-L229' title='Snippet source file'>snippet source</a> | <a href='#snippet-useuniquedirectory' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L271-L277' title='Snippet source file'>snippet source</a> | <a href='#snippet-useuniquedirectory' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


Expand Down
4 changes: 2 additions & 2 deletions docs/parameterised.md
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ public Task UseTextForParametersFluent(string arg) =>
Verify(arg + "UseTextForParametersFluent")
.UseTextForParameters(arg);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L409-L428' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetextforparameters' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L457-L476' title='Snippet source file'>snippet source</a> | <a href='#snippet-usetextforparameters' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Results in:
Expand Down Expand Up @@ -484,7 +484,7 @@ public Task IgnoreParametersForVerifiedFluent(string arg) =>
Verify("valueIgnoreParametersForVerifiedFluent")
.IgnoreParametersForVerified(arg);
```
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L481-L500' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoreparametersforverified' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Naming/NamerTests.cs#L529-L548' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoreparametersforverified' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Results in:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
valueUseSubDirectoryWithinCustomDirectory
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
valueUseSubDirectoryFluent
64 changes: 56 additions & 8 deletions src/Verify.Tests/Naming/NamerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,31 @@ public async Task UseDirectory()
#endregion
}

[Fact]
public async Task UseSubDirectory()
{
#region UseSubDirectory

var settings = new VerifySettings();
settings.UseSubDirectory("SubDirectory");
await Verify("valueUseSubDirectory", settings);

#endregion
}

[Fact]
public async Task UseDirectoryAndUseSubDirectory()
{
#region UseSubDirectory

var settings = new VerifySettings();
settings.UseDirectory("CustomDirectory");
settings.UseSubDirectory("SubDirectory");
await Verify("valueUseSubDirectoryWithinCustomDirectory", settings);

#endregion
}

[Fact]
public async Task UseDirectoryFluent()
{
Expand All @@ -217,6 +242,29 @@ await Verify("valueUseDirectoryFluent")
#endregion
}

[Fact]
public async Task UseSubDirectoryFluent()
{
#region UseSubDirectoryFluent

await Verify("valueUseSubDirectoryFluent")
.UseSubDirectory("SubDirectory");

#endregion
}

[Fact]
public async Task UseDirectoryAndUseSubDirectoryFluent()
{
#region UseSubDirectoryFluent

await Verify("valueUseSubDirectoryFluent")
.UseDirectory("CustomDirectory")
.UseSubDirectory("SubDirectory");

#endregion
}

[Fact]
public async Task UseUniqueDirectory()
{
Expand Down Expand Up @@ -399,10 +447,10 @@ public Task GetRuntimeAndVersion()
{
var runtimeAndVersion = Namer.GetRuntimeAndVersion();
return Verify(new
{
runtimeAndVersion.runtime,
runtimeAndVersion.Version
})
{
runtimeAndVersion.runtime,
runtimeAndVersion.Version
})
.UniqueForRuntimeAndVersion();
}

Expand Down Expand Up @@ -578,10 +626,10 @@ public Task FrameworkName()
var name = GetType()
.Assembly.FrameworkName()!;
return Verify(new
{
name.Name,
name.NameAndVersion
})
{
name.Name,
name.NameAndVersion
})
.UniqueForRuntimeAndVersion();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
valueUseSubDirectory
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
valueUseSubDirectoryFluent
16 changes: 15 additions & 1 deletion src/Verify/Naming/VerifySettings.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace VerifyTests;
namespace VerifyTests;

public partial class VerifySettings
{
Expand Down Expand Up @@ -73,6 +73,20 @@ public void UseDirectory(string directory)
Directory = directory;
}

public string? SubDirectory { get; internal set; }

/// <summary>
/// Use a sub directory for the test results.
/// </summary>
public void UseSubDirectory(string subDirectory)
{
Guard.BadDirectoryName(subDirectory);
if (Path.IsPathRooted(subDirectory))
throw new ArgumentException($"Sub directory cannot be rooted ('{subDirectory}')", nameof(subDirectory));

SubDirectory = subDirectory;
}

internal string? typeName;

/// <summary>
Expand Down
12 changes: 11 additions & 1 deletion src/Verify/SettingsTask.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace VerifyTests;
namespace VerifyTests;

public partial class SettingsTask
{
Expand Down Expand Up @@ -224,6 +224,16 @@ public SettingsTask UseDirectory(string directory)
return this;
}

/// <summary>
/// Use a sub directory for the test results.
/// </summary>
[Pure]
public SettingsTask UseSubDirectory(string subDirectory)
{
CurrentSettings.UseSubDirectory(subDirectory);
return this;
}

/// <summary>
/// Use a file name for the test results.
/// Overrides the `{TestClassName}.{TestMethodName}_{Parameters}` parts of the file naming.
Expand Down
2 changes: 2 additions & 0 deletions src/Verify/Verifier/InnerVerifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,8 @@ static string ResolveDirectory(string sourceFile, VerifySettings settings, PathI
return sourceFileDirectory;
}

settingsOrInfoDirectory = Path.Combine(settingsOrInfoDirectory, settings.SubDirectory ?? string.Empty);

var mappedSettingsOrInfoDirectory = IoHelpers.GetMappedBuildPath(settingsOrInfoDirectory);
var directory = Path.Combine(sourceFileDirectory, mappedSettingsOrInfoDirectory);
IoHelpers.CreateDirectory(directory);
Expand Down
1 change: 1 addition & 0 deletions src/Verify/VerifySettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public VerifySettings(VerifySettings? settings)
appendedFiles = settings.appendedFiles;
useUniqueDirectory = settings.useUniqueDirectory;
Directory = settings.Directory;
SubDirectory = settings.SubDirectory;
autoVerify = settings.autoVerify;
serialization = settings.serialization;
stringComparer = settings.stringComparer;
Expand Down

0 comments on commit 76885a2

Please sign in to comment.