public static void PushDirectory(IPatternContext context, params string[] directoryNames) { foreach (var each in directoryNames) { var directory = new MockDirectoryInfo(null, null, string.Empty, each, null); context.PushDirectory(directory); } }
public FileSystemGlobbingTestContext Files(params string[] files) { _directoryInfo = new MockDirectoryInfo( _directoryInfo.Recorder, _directoryInfo.ParentDirectory, _directoryInfo.FullName, _directoryInfo.Name, _directoryInfo.Paths.Concat(files.Select(file => _basePath + file)).ToArray()); return this; }
public void MockDirectoryInfo_Exists(string path, bool expected) { var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { {XFS.Path(@"c:\temp\folder\file.txt"), new MockFileData("Hello World")} }); var directoryInfo = new MockDirectoryInfo(fileSystem, path); var result = directoryInfo.Exists; Assert.That(result, Is.EqualTo(expected)); }
public void MockDirectoryInfo_GetExtension_ShouldReturnEmptyString(string directoryPath) { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()); var directoryInfo = new MockDirectoryInfo(fileSystem, directoryPath); // Act var result = directoryInfo.Extension; // Assert Assert.AreEqual(string.Empty, result); }
public void MockDirectoryInfo_GetExtensionWithTrailingSlash_ShouldReturnEmptyString() { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\")); // Act var result = directoryInfo.Extension; // Assert Assert.AreEqual(string.Empty, result); }
public void MockDirectoryInfo_GetFileSystemInfos_ShouldReturnBothDirectoriesAndFiles() { var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { @"c:\temp\folder\file.txt", new MockFileData("Hello World") }, { @"c:\temp\folder\folder", new MockDirectoryData() } }); var directoryInfo = new MockDirectoryInfo(fileSystem, @"c:\temp\folder"); var result = directoryInfo.GetFileSystemInfos(); Assert.That(result.Length, Is.EqualTo(2)); }
public FileSystemGlobbingTestContext(string basePath, Matcher matcher) { _basePath = basePath; _recorder = new FileSystemOperationRecorder(); _patternMatching = matcher; _directoryInfo = new MockDirectoryInfo( recorder: _recorder, parentDirectory: null, fullName: _basePath, name: ".", paths: new string[0]); }
public void MockDirectoryInfo_FullName_ShouldReturnFullNameWithoutIncludingTrailingPathDelimiter() { var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { XFS.Path(@"c:\temp\folder\file.txt"), new MockFileData("Hello World") } }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); var result = directoryInfo.FullName; Assert.That(result, Is.EqualTo(XFS.Path(@"c:\temp\folder"))); }
public void MockDirectoryInfo_EnumerateDirectories_ShouldReturnAllDirectories() { // Arrange var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { //A file we want to ignore entirely { XFS.Path(@"c:\temp\folder\a.txt"), "" }, //Some files in sub folders (which we also want to ignore entirely) { XFS.Path(@"c:\temp\folder\b\file.txt"), "" }, { XFS.Path(@"c:\temp\folder\c\other.txt"), "" }, }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); // Act var directories = directoryInfo.EnumerateDirectories().Select(a => a.Name).ToArray(); // Assert Assert.AreEqual(new[] { "b", "c" }, directories); }
public void MockDirectoryInfo_CreationTime_ShouldSetCreationTimeOfFolderInMemoryFileSystem() { // Arrange var creationTime = DateTime.Now.AddHours(-4); var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { { XFS.Path(@"c:\temp\folder\folder"), new MockDirectoryData() }, }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")) { CreationTime = creationTime }; // Act var newTime = DateTime.Now; directoryInfo.CreationTime = newTime; // Assert Assert.AreEqual(newTime, directoryInfo.CreationTime); }
public void Rename_Directory() { var mockFileSystem = CreateMockFileSystem(); var mockFile = new MockDirectoryInfo(mockFileSystem, filePathDSubDir); const string renamedFileName = "newFileName"; string renamedFilePath = Path.Combine(targetDirPath, renamedFileName); mockFile.Rename(renamedFilePath); mockFile.Refresh(); //MockFileSystemのバグ?変更されない //mockFile.FullName // .Should().Be(renamedFilePath); //mockFile.Name // .Should().Be(renamedFileName); mockFileSystem.AllPaths .Should().NotContain(filePathDSubDir); mockFileSystem.AllPaths .Should().Contain(renamedFilePath); }
public void MockDirectoryInfo_EnumerateFiles_ShouldReturnAllFiles() { // Arrange var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { //Files "above" in folder we're querying { XFS.Path(@"c:\temp\a.txt"), "" }, //Files in the folder we're querying { XFS.Path(@"c:\temp\folder\b.txt"), "" }, { XFS.Path(@"c:\temp\folder\c.txt"), "" }, //Files "below" the folder we're querying { XFS.Path(@"c:\temp\folder\deeper\d.txt"), "" } }); // Act var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); // Assert Assert.AreEqual(new[] { "b.txt", "c.txt" }, directoryInfo.EnumerateFiles().ToList().Select(x => x.Name).ToArray()); }
public void MockDirectoryInfo_LastAccessTimeUtc_ShouldSetCreationTimeUtcOfFolderInMemoryFileSystem() { // Arrange var lastAccessTime = DateTime.Now.AddHours(-4); var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { { XFS.Path(@"c:\temp\folder\folder"), new MockDirectoryData() }, }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")) { LastAccessTimeUtc = lastAccessTime }; // Act var newUtcTime = DateTime.UtcNow; directoryInfo.LastAccessTimeUtc = newUtcTime; // Assert Assert.AreEqual(newUtcTime, directoryInfo.LastAccessTimeUtc); }
public void MockDirectoryInfo_EnumerateDirectories_ShouldReturnAllDirectories() { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { //A file we want to ignore entirely { XFS.Path(@"c:\temp\folder\a.txt"), "" }, //Some files in sub folders (which we also want to ignore entirely) { XFS.Path(@"c:\temp\folder\b\file.txt"), "" }, { XFS.Path(@"c:\temp\folder\c\other.txt"), "" }, }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); // Act var directories = directoryInfo.EnumerateDirectories().Select(a => a.Name).ToArray(); // Assert Assert.AreEqual(new[] { "b", "c" }, directories); }
public void MockDirectoryInfo_EnumerateFiles_ShouldReturnAllFiles() { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { //Files "above" in folder we're querying { XFS.Path(@"c:\temp\a.txt"), "" }, //Files in the folder we're querying { XFS.Path(@"c:\temp\folder\b.txt"), "" }, { XFS.Path(@"c:\temp\folder\c.txt"), "" }, //Files "below" the folder we're querying { XFS.Path(@"c:\temp\folder\deeper\d.txt"), "" } }); // Act var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); // Assert Assert.AreEqual(new[]{"b.txt", "c.txt"}, directoryInfo.EnumerateFiles().ToList().Select(x => x.Name).ToArray()); }
public void MockDirectoryInfo_GetParent_ShouldReturnDirectoriesAndNamesWithSearchPattern() { // Arrange var fileSystem = new MockFileSystem(); fileSystem.AddDirectory(XFS.Path(@"c:\a\b\c")); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\a\b\c")); // Act var result = directoryInfo.Parent; // Assert Assert.AreEqual(XFS.Path(@"c:\a\b"), result.FullName); }
public void MockDirectoryInfo_GetFileSystemInfos_ShouldReturnDirectoriesAndNamesWithSearchPattern() { var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { XFS.Path(@"c:\temp\folder\file.txt"), new MockFileData("Hello World") }, { XFS.Path(@"c:\temp\folder\folder"), new MockDirectoryData() }, { XFS.Path(@"c:\temp\folder\older"), new MockDirectoryData() } }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); var result = directoryInfo.GetFileSystemInfos("f*"); Assert.That(result.Length, Is.EqualTo(2)); }
public FileSystemGlobbingTestContext SubDirectory(string name) { _directoryInfo = (MockDirectoryInfo)_directoryInfo.GetDirectory(name); return this; }
public void MockDirectoryInfo_FullName_ShouldReturnNormalizedPath(string directoryPath, string expectedFullName) { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { XFS.Path(@"c:\temp\folder\a.txt"), "" } }); var directoryInfo = new MockDirectoryInfo(fileSystem, directoryPath); // Act var actualFullName = directoryInfo.FullName; // Assert Assert.AreEqual(expectedFullName, actualFullName); }
public void MockDirectoryInfo_EnumerateFileSystemInfos_ShouldReturnBothDirectoriesAndFiles() { var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { XFS.Path(@"c:\temp\folder\file.txt"), new MockFileData("Hello World") }, { XFS.Path(@"c:\temp\folder\folder"), new MockDirectoryData() } }); var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); var result = directoryInfo.EnumerateFileSystemInfos().ToArray(); Assert.That(result.Length, Is.EqualTo(2)); }
public void MockDirectoryInfo_EnumerateFiles_ShouldReturnAllFiles() { // Arrange var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { XFS.Path(@"c:\temp\folder\a.txt"), "" }, { XFS.Path(@"c:\temp\folder\b.txt"), "" } }); // Act var directoryInfo = new MockDirectoryInfo(fileSystem, XFS.Path(@"c:\temp\folder")); // Assert Assert.AreEqual(new[]{"a.txt", "b.txt"}, directoryInfo.EnumerateFiles().ToList().Select(x => x.Name).ToArray()); }