public override IEnumerable <DirectoryItemInfo> ItemsInDirectory(string path) { MockDirectory directory = this.RootDirectory.FindDirectory(path); directory.ShouldNotBeNull(); if (directory != null) { 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 void DeleteDirectory(string path, bool recursive = false) { MockDirectory directory = this.RootDirectory.FindDirectory(path); directory.ShouldNotBeNull(); this.RootDirectory.DeleteDirectory(path); }
public void MoveDirectory(string sourcePath, string targetPath) { MockDirectory sourceDirectory; MockDirectory sourceDirectoryParent; this.TryGetDirectoryAndParent(sourcePath, out sourceDirectory, out sourceDirectoryParent).ShouldEqual(true); int endPathIndex = targetPath.LastIndexOf(GVFSConstants.PathSeparator); string targetDirectoryPath = targetPath.Substring(0, endPathIndex); MockDirectory targetDirectory = this.FindDirectory(targetDirectoryPath); targetDirectory.ShouldNotBeNull(); sourceDirectoryParent.RemoveDirectory(sourceDirectory); sourceDirectory.FullName = targetPath; targetDirectory.AddDirectory(sourceDirectory); }
public MockFile CreateFile(string path, string contents, bool createDirectories = false) { string parentPath = path.Substring(0, path.LastIndexOf(GVFSConstants.PathSeparator)); 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); }