public void DeleteFile() { using (MockVirtualizationInstance mockVirtualization = new MockVirtualizationInstance()) using (WindowsFileSystemVirtualizer virtualizer = new WindowsFileSystemVirtualizer(this.Repo.Context, this.Repo.GitObjects, mockVirtualization, numWorkThreads)) { UpdateFailureReason failureReason = UpdateFailureReason.NoFailure; mockVirtualization.DeleteFileResult = HResult.Ok; mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.NoFailure; virtualizer .DeleteFile("test.txt", UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.Ok, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); mockVirtualization.DeleteFileResult = HResult.FileNotFound; mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.NoFailure; virtualizer .DeleteFile("test.txt", UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.FileOrPathNotFound, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); mockVirtualization.DeleteFileResult = HResult.VirtualizationInvalidOp; mockVirtualization.DeleteFileUpdateFailureCause = UpdateFailureCause.DirtyData; virtualizer .DeleteFile("test.txt", UpdatePlaceholderType.AllowReadOnly, out failureReason) .ShouldEqual(new FileSystemResult(FSResult.VirtualizationInvalidOperation, (int)mockVirtualization.DeleteFileResult)); failureReason.ShouldEqual((UpdateFailureReason)mockVirtualization.DeleteFileUpdateFailureCause); } }
public void ClearNegativePathCache() { const uint InitialNegativePathCacheCount = 7; using (MockVirtualizationInstance mockVirtualization = new MockVirtualizationInstance()) using (WindowsFileSystemVirtualizer virtualizer = new WindowsFileSystemVirtualizer(this.Repo.Context, this.Repo.GitObjects, mockVirtualization, numWorkThreads)) { mockVirtualization.NegativePathCacheCount = InitialNegativePathCacheCount; uint totalEntryCount; virtualizer.ClearNegativePathCache(out totalEntryCount).ShouldEqual(new FileSystemResult(FSResult.Ok, (int)HResult.Ok)); totalEntryCount.ShouldEqual(InitialNegativePathCacheCount); } }
public void HResultToFSResultMapsHResults() { foreach (HResult result in Enum.GetValues(typeof(HResult))) { if (MappedHResults.ContainsKey(result)) { WindowsFileSystemVirtualizer.HResultToFSResult(result).ShouldEqual(MappedHResults[result]); } else { WindowsFileSystemVirtualizer.HResultToFSResult(result).ShouldEqual(FSResult.IOError); } } }