Exemplo n.º 1
0
        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);
                }
        }
Exemplo n.º 2
0
        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);
                }
        }
Exemplo n.º 3
0
 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);
         }
     }
 }