diff --git a/Source/Testably.Abstractions.Testing/MockFileSystem.cs b/Source/Testably.Abstractions.Testing/MockFileSystem.cs
index 1949a9e7e..5d523ecda 100644
--- a/Source/Testably.Abstractions.Testing/MockFileSystem.cs
+++ b/Source/Testably.Abstractions.Testing/MockFileSystem.cs
@@ -35,7 +35,7 @@ public sealed class MockFileSystem : IFileSystem
/// The simulation mode for the underlying operating system.
///
///
- /// Can be changed by setting in
+ /// Can be changed by setting in
/// the constructor.
///
#else
@@ -101,15 +101,15 @@ internal IReadOnlyList StorageContainers
///
/// Initializes the .
///
- public MockFileSystem() : this(_ => { }) { }
+ public MockFileSystem() : this(o => o) { }
///
- /// Initializes the with the .
+ /// Initializes the with the .
///
- public MockFileSystem(Action initializationCallback)
+ public MockFileSystem(Func options)
{
- Initialization initialization = new();
- initializationCallback(initialization);
+ MockFileSystemOptions initialization = new();
+ initialization = options(initialization);
#if CAN_SIMULATE_OTHER_OS
SimulationMode = initialization.SimulationMode;
@@ -217,7 +217,7 @@ public MockFileSystem WithSafeFileHandleStrategy(
return this;
}
- private void InitializeFileSystem(Initialization initialization)
+ private void InitializeFileSystem(MockFileSystemOptions initialization)
{
try
{
@@ -240,7 +240,7 @@ private void InitializeFileSystem(Initialization initialization)
///
/// The initialization options for the .
///
- public class Initialization
+ public class MockFileSystemOptions
{
///
/// The current directory.
@@ -257,16 +257,11 @@ public class Initialization
///
internal SimulationMode SimulationMode { get; private set; } = SimulationMode.Native;
- internal Initialization()
- {
- // Avoid public constructor
- }
-
#if CAN_SIMULATE_OTHER_OS
///
/// Specify the operating system that should be simulated.
///
- public Initialization SimulatingOperatingSystem(SimulationMode simulationMode)
+ public MockFileSystemOptions SimulatingOperatingSystem(SimulationMode simulationMode)
{
SimulationMode = simulationMode;
return this;
@@ -276,7 +271,7 @@ public Initialization SimulatingOperatingSystem(SimulationMode simulationMode)
///
/// Use the provided as current directory.
///
- public Initialization UseCurrentDirectory(string path)
+ public MockFileSystemOptions UseCurrentDirectory(string path)
{
CurrentDirectory = path;
return this;
@@ -285,7 +280,7 @@ public Initialization UseCurrentDirectory(string path)
///
/// Use as current directory.
///
- public Initialization UseCurrentDirectory()
+ public MockFileSystemOptions UseCurrentDirectory()
{
CurrentDirectory = System.IO.Directory.GetCurrentDirectory();
return this;
@@ -294,7 +289,7 @@ public Initialization UseCurrentDirectory()
///
/// Use the given for the .
///
- public Initialization UseRandomProvider(IRandomProvider randomProvider)
+ public MockFileSystemOptions UseRandomProvider(IRandomProvider randomProvider)
{
RandomProvider = randomProvider;
return this;
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
index d4eeb7311..d6252d355 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
@@ -93,7 +93,7 @@ namespace Testably.Abstractions.Testing
public sealed class MockFileSystem : System.IO.Abstractions.IFileSystem
{
public MockFileSystem() { }
- public MockFileSystem(System.Action initializationCallback) { }
+ public MockFileSystem(System.Func options) { }
public System.IO.Abstractions.IDirectory Directory { get; }
public System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; }
public System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; }
@@ -112,12 +112,13 @@ namespace Testably.Abstractions.Testing
public Testably.Abstractions.Testing.MockFileSystem WithAccessControlStrategy(Testably.Abstractions.Testing.FileSystem.IAccessControlStrategy accessControlStrategy) { }
public Testably.Abstractions.Testing.MockFileSystem WithDrive(string? drive, System.Action? driveCallback = null) { }
public Testably.Abstractions.Testing.MockFileSystem WithSafeFileHandleStrategy(Testably.Abstractions.Testing.FileSystem.ISafeFileHandleStrategy safeFileHandleStrategy) { }
- public class Initialization
+ public class MockFileSystemOptions
{
- public Testably.Abstractions.Testing.MockFileSystem.Initialization SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory() { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory(string path) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
+ public MockFileSystemOptions() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory(string path) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
}
}
public static class MockFileSystemExtensions
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net7.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net7.0.txt
index c4538ac9d..bebfd38b8 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net7.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net7.0.txt
@@ -93,7 +93,7 @@ namespace Testably.Abstractions.Testing
public sealed class MockFileSystem : System.IO.Abstractions.IFileSystem
{
public MockFileSystem() { }
- public MockFileSystem(System.Action initializationCallback) { }
+ public MockFileSystem(System.Func options) { }
public System.IO.Abstractions.IDirectory Directory { get; }
public System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; }
public System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; }
@@ -112,12 +112,13 @@ namespace Testably.Abstractions.Testing
public Testably.Abstractions.Testing.MockFileSystem WithAccessControlStrategy(Testably.Abstractions.Testing.FileSystem.IAccessControlStrategy accessControlStrategy) { }
public Testably.Abstractions.Testing.MockFileSystem WithDrive(string? drive, System.Action? driveCallback = null) { }
public Testably.Abstractions.Testing.MockFileSystem WithSafeFileHandleStrategy(Testably.Abstractions.Testing.FileSystem.ISafeFileHandleStrategy safeFileHandleStrategy) { }
- public class Initialization
+ public class MockFileSystemOptions
{
- public Testably.Abstractions.Testing.MockFileSystem.Initialization SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory() { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory(string path) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
+ public MockFileSystemOptions() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory(string path) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
}
}
public static class MockFileSystemExtensions
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
index 58aea17eb..63c1c1db2 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
@@ -93,7 +93,7 @@ namespace Testably.Abstractions.Testing
public sealed class MockFileSystem : System.IO.Abstractions.IFileSystem
{
public MockFileSystem() { }
- public MockFileSystem(System.Action initializationCallback) { }
+ public MockFileSystem(System.Func options) { }
public System.IO.Abstractions.IDirectory Directory { get; }
public System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; }
public System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; }
@@ -112,12 +112,13 @@ namespace Testably.Abstractions.Testing
public Testably.Abstractions.Testing.MockFileSystem WithAccessControlStrategy(Testably.Abstractions.Testing.FileSystem.IAccessControlStrategy accessControlStrategy) { }
public Testably.Abstractions.Testing.MockFileSystem WithDrive(string? drive, System.Action? driveCallback = null) { }
public Testably.Abstractions.Testing.MockFileSystem WithSafeFileHandleStrategy(Testably.Abstractions.Testing.FileSystem.ISafeFileHandleStrategy safeFileHandleStrategy) { }
- public class Initialization
+ public class MockFileSystemOptions
{
- public Testably.Abstractions.Testing.MockFileSystem.Initialization SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory() { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory(string path) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
+ public MockFileSystemOptions() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions SimulatingOperatingSystem(Testably.Abstractions.Testing.SimulationMode simulationMode) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory(string path) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
}
}
public static class MockFileSystemExtensions
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
index 4587f8266..2b1fd8bc6 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
@@ -91,7 +91,7 @@ namespace Testably.Abstractions.Testing
public sealed class MockFileSystem : System.IO.Abstractions.IFileSystem
{
public MockFileSystem() { }
- public MockFileSystem(System.Action initializationCallback) { }
+ public MockFileSystem(System.Func options) { }
public System.IO.Abstractions.IDirectory Directory { get; }
public System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; }
public System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; }
@@ -110,11 +110,12 @@ namespace Testably.Abstractions.Testing
public Testably.Abstractions.Testing.MockFileSystem WithAccessControlStrategy(Testably.Abstractions.Testing.FileSystem.IAccessControlStrategy accessControlStrategy) { }
public Testably.Abstractions.Testing.MockFileSystem WithDrive(string? drive, System.Action? driveCallback = null) { }
public Testably.Abstractions.Testing.MockFileSystem WithSafeFileHandleStrategy(Testably.Abstractions.Testing.FileSystem.ISafeFileHandleStrategy safeFileHandleStrategy) { }
- public class Initialization
+ public class MockFileSystemOptions
{
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory() { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory(string path) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
+ public MockFileSystemOptions() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory(string path) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
}
}
public static class MockFileSystemExtensions
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
index 1c6d399b2..13ebed2f2 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
@@ -91,7 +91,7 @@ namespace Testably.Abstractions.Testing
public sealed class MockFileSystem : System.IO.Abstractions.IFileSystem
{
public MockFileSystem() { }
- public MockFileSystem(System.Action initializationCallback) { }
+ public MockFileSystem(System.Func options) { }
public System.IO.Abstractions.IDirectory Directory { get; }
public System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; }
public System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; }
@@ -110,11 +110,12 @@ namespace Testably.Abstractions.Testing
public Testably.Abstractions.Testing.MockFileSystem WithAccessControlStrategy(Testably.Abstractions.Testing.FileSystem.IAccessControlStrategy accessControlStrategy) { }
public Testably.Abstractions.Testing.MockFileSystem WithDrive(string? drive, System.Action? driveCallback = null) { }
public Testably.Abstractions.Testing.MockFileSystem WithSafeFileHandleStrategy(Testably.Abstractions.Testing.FileSystem.ISafeFileHandleStrategy safeFileHandleStrategy) { }
- public class Initialization
+ public class MockFileSystemOptions
{
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory() { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseCurrentDirectory(string path) { }
- public Testably.Abstractions.Testing.MockFileSystem.Initialization UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
+ public MockFileSystemOptions() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory() { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseCurrentDirectory(string path) { }
+ public Testably.Abstractions.Testing.MockFileSystem.MockFileSystemOptions UseRandomProvider(Testably.Abstractions.Testing.RandomSystem.IRandomProvider randomProvider) { }
}
}
public static class MockFileSystemExtensions
diff --git a/Tests/Testably.Abstractions.Testing.Tests/MockFileSystemInitializationTests.cs b/Tests/Testably.Abstractions.Testing.Tests/MockFileSystemInitializationTests.cs
index 43e97d00b..0295b4658 100644
--- a/Tests/Testably.Abstractions.Testing.Tests/MockFileSystemInitializationTests.cs
+++ b/Tests/Testably.Abstractions.Testing.Tests/MockFileSystemInitializationTests.cs
@@ -90,9 +90,9 @@ public void MockFileSystem_WithoutCurrentDirectory_ShouldUseDefaultDriveAsCurren
public void SimulatingOperatingSystem_ValidOSPlatform_ShouldSetOperatingSystem(
SimulationMode simulationMode)
{
- MockFileSystem.Initialization sut = new();
+ MockFileSystem.MockFileSystemOptions sut = new();
- MockFileSystem.Initialization result = sut.SimulatingOperatingSystem(simulationMode);
+ MockFileSystem.MockFileSystemOptions result = sut.SimulatingOperatingSystem(simulationMode);
result.SimulationMode.Should().Be(simulationMode);
sut.SimulationMode.Should().Be(simulationMode);
@@ -103,9 +103,9 @@ public void SimulatingOperatingSystem_ValidOSPlatform_ShouldSetOperatingSystem(
public void UseCurrentDirectory_Empty_ShouldUseCurrentDirectory()
{
string expected = Directory.GetCurrentDirectory();
- MockFileSystem.Initialization sut = new();
+ MockFileSystem.MockFileSystemOptions sut = new();
- MockFileSystem.Initialization result = sut.UseCurrentDirectory();
+ MockFileSystem.MockFileSystemOptions result = sut.UseCurrentDirectory();
result.CurrentDirectory.Should().Be(expected);
sut.CurrentDirectory.Should().Be(expected);
@@ -115,9 +115,9 @@ public void UseCurrentDirectory_Empty_ShouldUseCurrentDirectory()
[AutoData]
public void UseCurrentDirectory_WithPath_ShouldUsePathCurrentDirectory(string path)
{
- MockFileSystem.Initialization sut = new();
+ MockFileSystem.MockFileSystemOptions sut = new();
- MockFileSystem.Initialization result = sut.UseCurrentDirectory(path);
+ MockFileSystem.MockFileSystemOptions result = sut.UseCurrentDirectory(path);
result.CurrentDirectory.Should().Be(path);
sut.CurrentDirectory.Should().Be(path);