Skip to content

Commit f20e45d

Browse files
Hinrich.Auetathamoddie
authored andcommitted
fixed a problem where GetDirectories () returns the path you supply as a parameter, when the path provided is relative.
added tests. fixed by always getting the full path work on first.
1 parent 1bf8b19 commit f20e45d

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

TestHelpers.Tests/MockDirectoryTests.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,49 @@ public void MockDirectory_GetDirectories_WithTopDirectories_ShouldOnlyReturnTopD
877877
Assert.That(actualResult, Is.EquivalentTo(new []{XFS.Path(@"C:\Folder\.foo\"), XFS.Path(@"C:\Folder\foo.foo\")}));
878878
}
879879

880+
[Test]
881+
public void MockDirectory_GetDirectories_RelativeWithNoSubDirectories_ShouldReturnDirectories()
882+
{
883+
// Arrange
884+
var fileSystem = new MockFileSystem();
885+
fileSystem.Directory.CreateDirectory("Folder");
886+
887+
// Act
888+
var actualResult = fileSystem.Directory.GetDirectories("Folder");
889+
890+
// Assert
891+
Assert.That(actualResult, Is.Empty);
892+
}
893+
894+
[TestCase(@"Folder\SubFolder")]
895+
[TestCase(@"Folder")]
896+
public void MockDirectory_GetDirectories_RelativeDirectory_ShouldReturnDirectories(string relativeDirPath)
897+
{
898+
// Arrange
899+
var fileSystem = new MockFileSystem();
900+
fileSystem.Directory.CreateDirectory(relativeDirPath);
901+
902+
// Act
903+
var actualResult = fileSystem.Directory.GetDirectories(relativeDirPath);
904+
905+
// Assert
906+
Assert.That(actualResult, Is.Empty);
907+
}
908+
909+
[Test]
910+
public void MockDirectory_GetDirectories_AbsoluteWithNoSubDirectories_ShouldReturnDirectories()
911+
{
912+
// Arrange
913+
var fileSystem = new MockFileSystem();
914+
fileSystem.Directory.CreateDirectory("Folder");
915+
916+
// Act
917+
var actualResult = fileSystem.Directory.GetDirectories(fileSystem.Path.GetFullPath("Folder"));
918+
919+
// Assert
920+
Assert.That(actualResult, Is.Empty);
921+
}
922+
880923
[Test]
881924
public void MockDirectory_GetDirectories_WithAllDirectories_ShouldReturnsAllMatchingSubFolders()
882925
{

TestingHelpers/MockDirectory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ private string[] GetFilesInternal(IEnumerable<string> files, string path, string
184184
{
185185
CheckSearchPattern(searchPattern);
186186
path = EnsurePathEndsWithDirectorySeparator(path);
187-
path = mockFileDataAccessor.Path.GetFullPath(path);
188187

189188
bool isUnix = XFS.IsUnixPlatform();
190189

@@ -434,6 +433,7 @@ public override IEnumerable<string> EnumerateDirectories(string path, string sea
434433
mockFileDataAccessor.PathVerifier.IsLegalAbsoluteOrRelative(path, "path");
435434

436435
path = EnsurePathEndsWithDirectorySeparator(path);
436+
path = mockFileDataAccessor.Path.GetFullPath(path);
437437

438438
if (!Exists(path))
439439
{

0 commit comments

Comments
 (0)