Skip to content

Commit 39816e9

Browse files
committed
WIP Start MockDirectory Nix fixup
1 parent 4137777 commit 39816e9

2 files changed

Lines changed: 27 additions & 19 deletions

File tree

TestHelpers.Tests/MockDirectoryInfoTests.cs

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public void MockDirectoryInfo_GetExtension_ShouldReturnEmptyString()
1111
{
1212
// Arrange
1313
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>());
14-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp");
14+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\temp").ForUnix("/temp"));
1515

1616
// Act
1717
var result = directoryInfo.Extension;
@@ -25,7 +25,7 @@ public void MockDirectoryInfo_GetExtensionWithTrailingSlash_ShouldReturnEmptyStr
2525
{
2626
// Arrange
2727
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>());
28-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp\");
28+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\temp\").ForUnix("/temp/"));
2929

3030
// Act
3131
var result = directoryInfo.Extension;
@@ -34,13 +34,21 @@ public void MockDirectoryInfo_GetExtensionWithTrailingSlash_ShouldReturnEmptyStr
3434
Assert.AreEqual(string.Empty, result);
3535
}
3636

37-
[TestCase(@"c:\temp\folder", true)]
38-
[TestCase(@"c:\temp\folder\notExistant", false)]
37+
public static IEnumerable<object[]> MockDirectoryInfo_Exists_Cases
38+
{
39+
get
40+
{
41+
yield return new object[]{ XFS.ForWin(@"c:\temp\folder").ForUnix("/temp/folder"), true };
42+
yield return new object[]{ XFS.ForWin(@"c:\temp\folder\notExistant").ForUnix("/temp/folder/notExistant"), false };
43+
}
44+
}
45+
46+
[TestCaseSource("MockDirectoryInfo_Exists_Cases")]
3947
public void MockDirectoryInfo_Exists(string path, bool expected)
4048
{
4149
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
4250
{
43-
{@"c:\temp\folder\file.txt", new MockFileData("Hello World")}
51+
{XFS.ForWin(@"c:\temp\folder\file.txt").ForUnix("/temp/folder/file.txt"), new MockFileData("Hello World")}
4452
});
4553
var directoryInfo = new MockDirectoryInfo(fileSystem, path);
4654

@@ -55,27 +63,27 @@ public void MockDirectoryInfo_FullName_ShouldReturnFullNameWithoutIncludingTrail
5563
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
5664
{
5765
{
58-
@"c:\temp\folder\file.txt",
66+
XFS.ForWin(@"c:\temp\folder\file.txt").ForUnix("/temp/folder/file.txt"),
5967
new MockFileData("Hello World")
6068
}
6169
});
62-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp\folder");
70+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\temp\folder").ForUnix("/temp/folder"));
6371

6472
var result = directoryInfo.FullName;
6573

66-
Assert.That(result, Is.EqualTo(@"c:\temp\folder"));
74+
Assert.That(result, Is.EqualTo(XFS.ForWin(@"c:\temp\folder").ForUnix("/temp/folder")));
6775
}
6876

6977
[Test]
7078
public void MockDirectoryInfo_GetFileSystemInfos_ShouldReturnBothDirectoriesAndFiles()
7179
{
7280
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
7381
{
74-
{ @"c:\temp\folder\file.txt", new MockFileData("Hello World") },
75-
{ @"c:\temp\folder\folder", new MockDirectoryData() }
82+
{ XFS.ForWin(@"c:\temp\folder\file.txt").ForUnix("/temp/folder/file.txt"), new MockFileData("Hello World") },
83+
{ XFS.ForWin(@"c:\temp\folder\folder").ForUnix("/temp/folder/folder"), new MockDirectoryData() }
7684
});
7785

78-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp\folder");
86+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\temp\folder").ForUnix("/temp/folder"));
7987
var result = directoryInfo.GetFileSystemInfos();
8088

8189
Assert.That(result.Length, Is.EqualTo(2));
@@ -86,12 +94,12 @@ public void MockDirectoryInfo_GetFileSystemInfos_ShouldReturnDirectoriesAndNames
8694
{
8795
var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
8896
{
89-
{ @"c:\temp\folder\file.txt", new MockFileData("Hello World") },
90-
{ @"c:\temp\folder\folder", new MockDirectoryData() },
91-
{ @"c:\temp\folder\older", new MockDirectoryData() }
97+
{ XFS.ForWin(@"c:\temp\folder\file.txt").ForUnix("/temp/folder/file.txt"), new MockFileData("Hello World") },
98+
{ XFS.ForWin(@"c:\temp\folder\folder").ForUnix("/temp/folder/folder"), new MockDirectoryData() },
99+
{ XFS.ForWin(@"c:\temp\folder\older").ForUnix("/temp/folder/older"), new MockDirectoryData() }
92100
});
93101

94-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp\folder");
102+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\temp\folder").ForUnix("/temp/folder"));
95103
var result = directoryInfo.GetFileSystemInfos("f*");
96104

97105
Assert.That(result.Length, Is.EqualTo(2));
@@ -102,14 +110,14 @@ public void MockDirectoryInfo_GetParent_ShouldReturnDirectoriesAndNamesWithSearc
102110
{
103111
// Arrange
104112
var fileSystem = new MockFileSystem();
105-
fileSystem.AddDirectory(@"c:\a\b\c");
106-
var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\a\b\c");
113+
fileSystem.AddDirectory(XFS.ForWin(@"c:\a\b\c").ForUnix("/a/b/c"));
114+
var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.ForWin(@"c:\a\b\c").ForUnix("/a/b/c"));
107115

108116
// Act
109117
var result = directoryInfo.Parent;
110118

111119
// Assert
112-
Assert.AreEqual(@"c:\a\b", result.FullName);
120+
Assert.AreEqual(XFS.ForWin(@"c:\a\b").ForUnix("/a/b"), result.FullName);
113121
}
114122
}
115123
}

TestingHelpers/MockDirectoryInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public override string FullName
8383
}
8484

8585
// directories do not have a trailing slash
86-
return directoryPath.TrimEnd('\\');
86+
return directoryPath.TrimEnd('\\').TrimEnd('/');
8787
}
8888
}
8989

0 commit comments

Comments
 (0)