public void DeleteFile() { using (MockVirtualizationInstance mockVirtualization = new MockVirtualizationInstance()) using (LinuxFileSystemVirtualizer virtualizer = new LinuxFileSystemVirtualizer(this.Repo.Context, this.Repo.GitObjects, mockVirtualization)) { const string DeleteTestFileName = "deleteMe.txt"; UpdateFailureReason failureReason = UpdateFailureReason.NoFailure; mockVirtualization.DeleteFileResult = Result.Success; mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.NoFailure; virtualizer .DeleteFile(DeleteTestFileName, UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.Ok, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); mockVirtualization.DeleteFileResult = Result.EFileNotFound; mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.NoFailure; virtualizer .DeleteFile(DeleteTestFileName, UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.FileOrPathNotFound, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); // TODO: What will the result be when the UpdateFailureCause is DirtyData mockVirtualization.DeleteFileResult = Result.EInvalidOperation; // TODO: The result should probably be VirtualizationInvalidOperation but for now it's IOError mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.DirtyData; virtualizer .DeleteFile(DeleteTestFileName, UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.IOError, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); } }
public void ClearNegativePathCacheIsNoOp() { using (MockVirtualizationInstance mockVirtualization = new MockVirtualizationInstance()) using (LinuxFileSystemVirtualizer virtualizer = new LinuxFileSystemVirtualizer(this.Repo.Context, this.Repo.GitObjects, mockVirtualization)) { uint totalEntryCount = 0; virtualizer.ClearNegativePathCache(out totalEntryCount).ShouldEqual(new FileSystemResult(FSResult.Ok, (int)Result.Success)); totalEntryCount.ShouldEqual(0U); } }
public void ResultToFSResultMapsHResults() { foreach (Result result in Enum.GetValues(typeof(Result))) { if (MappedResults.ContainsKey(result)) { LinuxFileSystemVirtualizer.ResultToFSResult(result).ShouldEqual(MappedResults[result]); } else { LinuxFileSystemVirtualizer.ResultToFSResult(result).ShouldEqual(FSResult.IOError); } } }
protected override FileSystemVirtualizer CreateVirtualizer(CommonRepoSetup repo) { this.MockVirtualization = new MockVirtualizationInstance(); this.LinuxVirtualizer = new LinuxFileSystemVirtualizer(repo.Context, repo.GitObjects, this.MockVirtualization); return(this.LinuxVirtualizer); }