Skip to content

Commit c89aa09

Browse files
authored
fix: update MockDirectoryInfo.Name to be consistent with DirectoryInfo.Name (#715)
When constructed with only the root; MockDirectoryInfo.Name now returns the the root value instead of an empty string. Making it consistent with DirectoryInfo.Name. Fixes #697
1 parent ba96069 commit c89aa09

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/System.IO.Abstractions.TestingHelpers/MockDirectoryInfo.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ public override DateTime LastWriteTimeUtc
120120

121121
public override string Name
122122
{
123-
get { return new MockPath(mockFileDataAccessor).GetFileName(directoryPath.TrimEnd(mockFileDataAccessor.Path.DirectorySeparatorChar)); }
123+
get
124+
{
125+
var mockPath = new MockPath(mockFileDataAccessor);
126+
return string.Equals(mockPath.GetPathRoot(directoryPath), directoryPath) ? directoryPath : mockPath.GetFileName(directoryPath.TrimEnd(mockFileDataAccessor.Path.DirectorySeparatorChar));
127+
}
124128
}
125129

126130
public override void Create()

tests/System.IO.Abstractions.TestingHelpers.Tests/MockDirectoryInfoTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,21 @@ public void MockDirectoryInfo_Name_ShouldReturnNameWithTrimmedTrailingSpaces(str
324324
Assert.AreEqual(expectedName, actualName);
325325
}
326326

327+
[TestCase(@"c:\", @"c:\")]
328+
[WindowsOnly(WindowsSpecifics.Drives)]
329+
public void MockDirectoryInfo_Name_ShouldReturnPathRoot_IfDirectoryPathIsPathRoot(string directoryPath, string expectedName)
330+
{
331+
// Arrange
332+
var fileSystem = new MockFileSystem();
333+
var directoryInfo = new MockDirectoryInfo(fileSystem, directoryPath);
334+
335+
// Act
336+
var actualName = directoryInfo.Name;
337+
338+
// Assert
339+
Assert.AreEqual(expectedName, actualName);
340+
}
341+
327342
[Test]
328343
public void MockDirectoryInfo_Constructor_ShouldThrowArgumentNullException_IfArgumentDirectoryIsNull()
329344
{

0 commit comments

Comments
 (0)