Skip to content

Commit 41c7f0d

Browse files
authored
fix: Use searchPattern argument in GetFiles method to complete the logic (#988)
It should use the searchPattern argument to complete the logic. I found it while working with MockDirectoryInfo.EnumerateFiles(searchPattern, enumerationOptions) It didnt respect the searchPattern and my tests failed, so I decided to check the source.
1 parent 97a0ea2 commit 41c7f0d

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/TestableIO.System.IO.Abstractions.TestingHelpers/MockDirectory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public override string[] GetFiles(string path, string searchPattern, SearchOptio
265265
/// <inheritdoc />
266266
public override string[] GetFiles(string path, string searchPattern, EnumerationOptions enumerationOptions)
267267
{
268-
return GetFiles(path, "*", EnumerationOptionsToSearchOption(enumerationOptions));
268+
return GetFiles(path, searchPattern, EnumerationOptionsToSearchOption(enumerationOptions));
269269
}
270270
#endif
271271

tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,30 @@ public void MockDirectory_GetFiles_ShouldReturnAllFilesBelowPathWhenPatternIsWil
7979
Assert.That(result, Is.EquivalentTo(expected));
8080
}
8181

82+
#if FEATURE_ENUMERATION_OPTIONS
83+
[Test]
84+
public void MockDirectory_GetFiles_ShouldReturnAllPatternMatchingFilesWhenEnumerationOptionHasRecurseSubdirectoriesSetToTrue()
85+
{
86+
// Arrange
87+
var fileSystem = SetupFileSystem();
88+
var expected = new[]
89+
{
90+
XFS.Path(@"c:\b.txt"),
91+
XFS.Path(@"c:\c.txt"),
92+
XFS.Path(@"c:\a\a.txt"),
93+
XFS.Path(@"c:\a\c.txt"),
94+
XFS.Path(@"c:\a\a\a.txt"),
95+
XFS.Path(@"c:\a\a\b.txt")
96+
};
97+
98+
// Act
99+
var result = fileSystem.Directory.GetFiles(XFS.Path(@"c:\"), "*.txt", new EnumerationOptions { RecurseSubdirectories = true });
100+
101+
// Assert
102+
Assert.That(result, Is.EquivalentTo(expected));
103+
}
104+
#endif
105+
82106
private MockFileSystem SetupFileSystem()
83107
{
84108
return new MockFileSystem(new Dictionary<string, MockFileData>

0 commit comments

Comments
 (0)