public void AlphaFS_Host_DriveConnection() { var share = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(UnitTestConstants.LocalHostShare); using (var connection = new Alphaleonis.Win32.Network.DriveConnection(share)) { Console.WriteLine("\nUsing DriveConnection(): [{0}] to: [{1}]", connection.LocalName, share); Assert.AreEqual(share, connection.Share); } }
public void AlphaFS_Host_DriveConnection_Network_Success() { UnitTestConstants.PrintUnitTestHeader(true); Console.WriteLine(); var share = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(UnitTestConstants.TempFolder); using (var connection = new Alphaleonis.Win32.Network.DriveConnection(share)) { Console.WriteLine("Using DriveConnection(): [{0}] to: [{1}]", connection.LocalName, share); UnitTestConstants.Dump(connection, -9); Assert.AreEqual(share, connection.Share); } }
private void Path_LocalToUnc_MappedDriveWithSubFolder() { UnitTestConstants.PrintUnitTestHeader(false); Console.WriteLine(); var backslash = Alphaleonis.Win32.Filesystem.Path.DirectorySeparator; var hostName = Alphaleonis.Win32.Network.Host.GetUncName() + backslash; var localTempFolder = UnitTestConstants.TempFolder; var netTempFolder = localTempFolder.Replace(":", Alphaleonis.Win32.Filesystem.Path.NetworkDriveSeparator); var subFolderName = MethodBase.GetCurrentMethod().Name; var subFolderPath = hostName + netTempFolder + backslash + subFolderName; string[] localToUncPaths = { localTempFolder, hostName + netTempFolder, subFolderPath, Alphaleonis.Win32.Filesystem.Path.GetLongPath(subFolderPath) }; using (var connection = new Alphaleonis.Win32.Network.DriveConnection(localToUncPaths[1])) { var driveLetter = connection.LocalName; var subFolder = driveLetter + backslash + subFolderName; var uncPath = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(subFolder); var uncLongPath = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(subFolder, Alphaleonis.Win32.Filesystem.GetFullPathOptions.AsLongPath); Console.WriteLine("\tMapped letter: [{0}] to: [{1}]", driveLetter, connection.Share); Console.WriteLine(); Console.WriteLine("\tSub Folder Path : [{0}]", subFolder); Console.WriteLine("\tUNC Sub Folder Path : [{0}]", uncPath); Console.WriteLine("\tUNC Sub Folder Long Path: [{0}]", uncLongPath); Console.WriteLine(); Assert.AreEqual(localToUncPaths[2], uncPath); Assert.AreEqual(localToUncPaths[3], uncLongPath); } }
public void AlphaFS_Directory_CreateJunction_FromMappedDrive_ThrowsArgumentException_Netwerk_Success() { using (var tempRoot = new TemporaryDirectory()) using (var connection = new Alphaleonis.Win32.Network.DriveConnection(Alphaleonis.Win32.Filesystem.Path.LocalToUnc(tempRoot.CreateDirectory().FullName))) { var mappedPath = connection.LocalName + @"\" + tempRoot.RandomDirectoryName; Console.WriteLine("Mapped drive [{0}] to [{1}]", connection.LocalName, connection.Share); var target = System.IO.Directory.CreateDirectory(mappedPath); var toDelete = tempRoot.Directory.CreateSubdirectory("ToDelete"); var junction = System.IO.Path.Combine(toDelete.FullName, "JunctionPoint"); UnitTestAssert.ThrowsException <ArgumentException>(() => Alphaleonis.Win32.Filesystem.Directory.CreateJunction(junction, target.FullName)); } }
public void AlphaFS_Host_DriveConnection_Network_Success() { using (var tempRoot = new TemporaryDirectory(true)) { // Randomly test the share where the local folder possibly has the read-only and/or hidden attributes set. var folder = tempRoot.CreateDirectoryRandomizedAttributes(); using (var connection = new Alphaleonis.Win32.Network.DriveConnection(folder.FullName)) { Console.WriteLine("Mapped drive [{0}] to share [{1}]", connection.LocalName, folder.FullName); UnitTestConstants.Dump(connection); Assert.AreEqual(folder.FullName, connection.Share); Assert.IsTrue(System.IO.Directory.Exists(folder.FullName)); } } }
private void Path_LocalToUnc_MappedDriveAddTrailingDirectorySeparator() { UnitTestConstants.PrintUnitTestHeader(false); Console.WriteLine(); var backslash = Alphaleonis.Win32.Filesystem.Path.DirectorySeparator; var hostName = Alphaleonis.Win32.Network.Host.GetUncName() + backslash; var localTempFolder = UnitTestConstants.TempFolder; var netTempFolder = localTempFolder.Replace(":", Alphaleonis.Win32.Filesystem.Path.NetworkDriveSeparator); string[] localToUncPaths = { localTempFolder, hostName + netTempFolder, Alphaleonis.Win32.Filesystem.Path.GetLongPath(hostName + netTempFolder) }; using (var connection = new Alphaleonis.Win32.Network.DriveConnection(localToUncPaths[1])) { var driveLetter = connection.LocalName; var uncPath = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(driveLetter, Alphaleonis.Win32.Filesystem.GetFullPathOptions.AddTrailingDirectorySeparator); var uncLongPath = Alphaleonis.Win32.Filesystem.Path.LocalToUnc(driveLetter, Alphaleonis.Win32.Filesystem.GetFullPathOptions.AsLongPath | Alphaleonis.Win32.Filesystem.GetFullPathOptions.AddTrailingDirectorySeparator); Console.WriteLine("\tMapped letter: [{0}] to: [{1}]", driveLetter, connection.Share); Console.WriteLine(); Console.WriteLine("\tUNC Path : [{0}]", uncPath); Console.WriteLine("\tUNC Long Path: [{0}]", uncLongPath); Console.WriteLine(); Assert.AreEqual(localToUncPaths[1] + backslash, uncPath); Assert.AreEqual(localToUncPaths[2] + backslash, uncLongPath); } }
public void AlphaFS_Directory_CreateJunction_CatchArgumentException_MappedDrive_Netwerk_Success() { UnitTestConstants.PrintUnitTestHeader(false); var tempPath = System.IO.Path.GetTempPath(); using (var rootDir = new TemporaryDirectory(tempPath, MethodBase.GetCurrentMethod().Name)) using (var connection = new Alphaleonis.Win32.Network.DriveConnection(Alphaleonis.Win32.Filesystem.Path.LocalToUnc(UnitTestConstants.TempFolder))) { var mappedPath = connection.LocalName + @"\" + UnitTestConstants.GetRandomFileNameWithDiacriticCharacters(); Console.WriteLine("\nUsing mapped drive: [{0}] to: [{1}]", connection.LocalName, connection.Share); var target = Alphaleonis.Win32.Filesystem.Directory.CreateDirectory(mappedPath); var toDelete = rootDir.Directory.CreateSubdirectory("ToDelete"); var junction = System.IO.Path.Combine(toDelete.FullName, "JunctionPoint"); var gotException = false; try { Alphaleonis.Win32.Filesystem.Directory.CreateJunction(junction, target.FullName); } catch (Exception ex) { var exName = ex.GetType().Name; gotException = exName.Equals("ArgumentException", StringComparison.OrdinalIgnoreCase); Console.WriteLine("\n\tCaught {0} Exception: [{1}] {2}", gotException ? "EXPECTED" : "UNEXPECTED", exName, ex.Message); } Assert.IsTrue(gotException, "The exception is not caught, but is expected to."); target.Delete(); } }
public void AlphaFS_Path_GetMappedUncName() { using (var tempRoot = new TemporaryDirectory(true)) { // Randomly test the share where the local folder possibly has the read-only and/or hidden attributes set. var folder = tempRoot.CreateDirectoryRandomizedAttributes(); using (var connection = new Alphaleonis.Win32.Network.DriveConnection(folder.FullName)) { var driveName = connection.LocalName; Console.WriteLine("Mapped drive letter [{0}] to [{1}]", driveName, folder.FullName); UnitTestConstants.Dump(connection, -9); var connectionName = Alphaleonis.Win32.Filesystem.Path.GetMappedUncName(driveName); Assert.AreEqual(folder.FullName, connectionName); } } }