예제 #1
0
        public void GetVolumeNameTest()
        {
            Helper.DemandTestDriveAvailable(TestDrive);

            VolumeMountPoint.GetVolumeName(TestDrive).Should().StartWith(@"\\?\Volume{");
            VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\Volume\").Should().StartWith(@"\\?\Volume{");
            VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\Volume").Should().StartWith(@"\\?\Volume{");

            // junction not a volume mountpoint throws System.ArgumentException: Der Wert liegt außerhalb des erwarteten Bereichs.
            // Win32Exception: 'Falscher Parameter'
//			87: Falscher Parameter
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\Junction"));

            // Die Datei oder das Verzeichnis ist kein Analysepunkt. (Ausnahme von HRESULT: 0x80071126)
            // Die Datei oder das Verzeichnis ist kein Analysepunkt
//			4390: Die Datei oder das Verzeichnis ist kein Analysepunkt
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\Original"));

            // Win32Exception: 'Falscher Parameter'
//			87: Falscher Parameter
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\SymbolicLink"));

            // Win32Exception: Das System kann die angegebene Datei nicht finden
//			2: Das System kann die angegebene Datei nicht finden
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\NotExists"));

            // Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
//			123: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\Original.txt"));

            // Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
//			123: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
            Assert.ThrowsException <Win32Exception>(() => VolumeMountPoint.GetVolumeName(TestDrive + @"ReadTests\SymbolicLink.txt"));
        }
예제 #2
0
        public void GetMountPointsTest()
        {
            Helper.DemandTestDriveAvailable(TestDrive);

            var mountpoint = TestDrive + @"ReadTests\Volume\";
            var volumeName = VolumeMountPoint.GetVolumeName(mountpoint);

            CollectionAssert.AreEqual(new[] { TestDrive, mountpoint }, Volume.GetMountPoints(volumeName));
            CollectionAssert.AreEqual(new [] { TestDrive, mountpoint }, Volume.GetMountPoints(mountpoint));
        }
예제 #3
0
        public void ExistsTest()
        {
            Helper.DemandTestDriveAvailable(TestDrive);

            var mountpoint = TestDrive + @"ReadTests\Volume\";
            var volumeName = VolumeMountPoint.GetVolumeName(mountpoint);

            Assert.IsTrue(Volume.Exists(volumeName));
            Assert.IsFalse(Volume.Exists(@"\\?\Volume{6213B9DD-5BC7-4605-BEBB-4362CB224194}"));
            Assert.IsFalse(Volume.Exists(mountpoint));
            Assert.IsFalse(Volume.Exists(TestDrive + "NotExist"));
        }
예제 #4
0
        public void CompleteTest()
        {
            Helper.DemandTestDriveAvailable(TestDrive);
            //Helper.DemandElevated();

            var testFolder = Path.Combine(TestDrive, "WriteTests", typeof(VolumeMountPointTests).FullName);
            var mountpoint = Path.Combine(testFolder, "Volume");

            var vn = VolumeMountPoint.GetVolumeName(TestDrive);

            VolumeMountPoint.Create(mountpoint, vn);

            var vn1 = VolumeMountPoint.GetVolumeName(mountpoint);

            Assert.AreEqual(vn, vn1);

            VolumeMountPoint.Delete(mountpoint);
            Assert.AreEqual(false, Directory.Exists(mountpoint));
        }