Skip to content

Commit 1aa8ca7

Browse files
authored
fix: FileSystemInitializer supports nested directories (#376)
Initializing the file system with nested `DirectoryDescriptions` now creates the correct nested path.
1 parent b457e82 commit 1aa8ca7

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

Source/Testably.Abstractions.Testing/FileSystemInitializer/FileSystemInitializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private IDirectoryInfo WithDirectory(DirectoryDescription directory)
145145

146146
if (directory.Children.Length > 0)
147147
{
148-
DirectoryInitializer<TFileSystem> subdirectoryInitializer = new(this, directoryInfo);
148+
FileSystemInitializer<TFileSystem> subdirectoryInitializer = new(this, directoryInfo);
149149
foreach (FileSystemInfoDescription children in directory.Children)
150150
{
151151
subdirectoryInitializer.WithFileOrDirectory(children);

Tests/Testably.Abstractions.Testing.Tests/FileSystemInitializer/FileSystemInitializerTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.IO;
2+
using System.Linq;
23
using Testably.Abstractions.Testing.FileSystemInitializer;
34

45
namespace Testably.Abstractions.Testing.Tests.FileSystemInitializer;
@@ -21,6 +22,24 @@ public void With_DirectoryDescriptions_ShouldCreateDirectories(
2122
}
2223
}
2324

25+
[Theory]
26+
[AutoData]
27+
public void With_DirectoryDescriptions_WithSubdirectories_ShouldCreateDirectories(
28+
string parent, DirectoryDescription[] directories)
29+
{
30+
DirectoryDescription directoryDescription = new(parent,
31+
directories.Cast<FileSystemInfoDescription>().ToArray());
32+
MockFileSystem fileSystem = new();
33+
IFileSystemInitializer<MockFileSystem> sut = fileSystem.Initialize();
34+
35+
sut.With(directoryDescription);
36+
37+
foreach (DirectoryDescription directory in directories)
38+
{
39+
fileSystem.Should().HaveDirectory(Path.Combine(parent, directory.Name));
40+
}
41+
}
42+
2443
[Theory]
2544
[AutoData]
2645
public void With_FileDescription_WithBytes_ShouldCreateFileContent(string name, byte[] bytes)

0 commit comments

Comments
 (0)