public override IEnumerable <DirectoryItemInfo> ItemsInDirectory(string path) { MockDirectory directory = this.RootDirectory.FindDirectory(path); directory.ShouldNotBeNull(); foreach (MockDirectory subDirectory in directory.Directories.Values) { yield return(new DirectoryItemInfo() { Name = subDirectory.Name, FullName = subDirectory.FullName, IsDirectory = true }); } foreach (MockFile file in directory.Files.Values) { yield return(new DirectoryItemInfo() { FullName = file.FullName, Name = file.Name, IsDirectory = false, Length = file.FileProperties.Length }); } }
public override IEnumerable <string> EnumerateDirectories(string path) { MockDirectory directory = this.RootDirectory.FindDirectory(path); directory.ShouldNotBeNull(); if (directory != null) { foreach (MockDirectory subDirectory in directory.Directories.Values) { yield return(subDirectory.Name); } } }
public void MoveDirectory(string sourcePath, string targetPath) { MockDirectory sourceDirectory; MockDirectory sourceDirectoryParent; this.TryGetDirectoryAndParent(sourcePath, out sourceDirectory, out sourceDirectoryParent).ShouldEqual(true); int endPathIndex = targetPath.LastIndexOf(Path.DirectorySeparatorChar); string targetDirectoryPath = targetPath.Substring(0, endPathIndex); MockDirectory targetDirectory = this.FindDirectory(targetDirectoryPath); targetDirectory.ShouldNotBeNull(); sourceDirectoryParent.RemoveDirectory(sourceDirectory); sourceDirectory.FullName = targetPath; targetDirectory.AddDirectory(sourceDirectory); }
public override string[] GetFiles(string directoryPath, string mask) { if (!mask.Equals("*")) { throw new NotImplementedException(); } MockDirectory directory = this.RootDirectory.FindDirectory(directoryPath); directory.ShouldNotBeNull(); List <string> files = new List <string>(); foreach (MockFile file in directory.Files.Values) { files.Add(file.FullName); } return(files.ToArray()); }
public MockFile CreateFile(string path, string contents, bool createDirectories = false) { string parentPath = path.Substring(0, path.LastIndexOf(Path.DirectorySeparatorChar)); MockDirectory parentDirectory = this.FindDirectory(parentPath); if (createDirectories) { if (parentDirectory == null) { parentDirectory = this.CreateDirectory(parentPath); } } else { parentDirectory.ShouldNotBeNull(); } MockFile newFile = new MockFile(path, contents); parentDirectory.Files.Add(newFile.FullName, newFile); return(newFile); }