Skip to content

Commit 3d517f4

Browse files
authored
fix: use correct path for wrapped FileInfo and DirectoryInfo (#1079)
Use the full path when wrapping a `FileInfo` or `DirectoryInfo` to preserve the relevant information. *Fixes #1049*
1 parent d32fedd commit 3d517f4

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public IDirectoryInfo Wrap(DirectoryInfo directoryInfo)
4040
return null;
4141
}
4242

43-
return new MockDirectoryInfo(mockFileSystem, directoryInfo.Name);
43+
return new MockDirectoryInfo(mockFileSystem, directoryInfo.FullName);
4444
}
4545
}
4646
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public IFileInfo Wrap(FileInfo fileInfo)
3939
return null;
4040
}
4141

42-
return new MockFileInfo(mockFileSystem, fileInfo.Name);
42+
return new MockFileInfo(mockFileSystem, fileInfo.FullName);
4343
}
4444
}
4545
}

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

+11
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,16 @@ public void MockDirectoryInfoFactory_Wrap_WithNull_ShouldReturnNull()
1414

1515
Assert.That(result, Is.Null);
1616
}
17+
18+
[Test]
19+
public void MockDirectoryInfoFactory_Wrap_ShouldKeepNameAndFullName()
20+
{
21+
var fs = new MockFileSystem();
22+
var directoryInfo = new DirectoryInfo(@"C:\subfolder\file");
23+
var wrappedDirectoryInfo = fs.DirectoryInfo.Wrap(directoryInfo);
24+
25+
Assert.That(wrappedDirectoryInfo.FullName, Is.EqualTo(directoryInfo.FullName));
26+
Assert.That(wrappedDirectoryInfo.Name, Is.EqualTo(directoryInfo.Name));
27+
}
1728
}
1829
}

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

+11
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,16 @@ public void MockFileInfoFactory_Wrap_WithNull_ShouldReturnNull()
5151

5252
Assert.That(result, Is.Null);
5353
}
54+
55+
[Test]
56+
public void MockFileInfoFactory_Wrap_ShouldKeepNameAndFullName()
57+
{
58+
var fs = new MockFileSystem();
59+
var fileInfo = new FileInfo(@"C:\subfolder\file");
60+
var wrappedFileInfo = fs.FileInfo.Wrap(fileInfo);
61+
62+
Assert.That(wrappedFileInfo.FullName, Is.EqualTo(fileInfo.FullName));
63+
Assert.That(wrappedFileInfo.Name, Is.EqualTo(fileInfo.Name));
64+
}
5465
}
5566
}

0 commit comments

Comments
 (0)