public void CanGetVolumePath() { VolumeMap map = CreateMapOfAllLocalVolumes(); ulong thisVolumeSerial; SafeFileHandle directoryHandle; FileUtilities.TryOpenDirectory(TemporaryDirectory, FileShare.ReadWrite | FileShare.Delete, out directoryHandle); using (directoryHandle) { XAssert.IsNotNull(directoryHandle, "Failed to open the TemporaryDirectory, which we just created"); thisVolumeSerial = FileUtilities.GetVolumeSerialNumberByHandle(directoryHandle); } VolumeGuidPath volumePath = map.TryGetVolumePathBySerial(thisVolumeSerial); XAssert.IsTrue(volumePath.IsValid); var openResult = FileUtilities.TryOpenDirectory(volumePath.Path, FileShare.ReadWrite | FileShare.Delete, out directoryHandle); using (directoryHandle) { XAssert.IsTrue(openResult.Succeeded, "Failed to open the volume root (but we didn't ask for any access)"); XAssert.IsTrue(openResult.OpenedOrTruncatedExistingFile); XAssert.IsNotNull(directoryHandle); XAssert.AreEqual(thisVolumeSerial, FileUtilities.GetVolumeSerialNumberByHandle(directoryHandle), "The volume root path has the wrong volume serial"); } }
public void CannotGetVolumePathForSerialThatDoesNotExist() { var serials = new HashSet <ulong>(FileUtilities.ListVolumeGuidPathsAndSerials().Select(t => t.Item2)); ulong uniqueSerial = serials.First(); do { uniqueSerial++; }while (serials.Contains(uniqueSerial)); VolumeMap map = CreateMapOfAllLocalVolumes(); XAssert.IsFalse(map.TryGetVolumePathBySerial(uniqueSerial).IsValid, "Found a path for a serial that seemed to not exist"); }