public static void Test_RelativeFileMove_MoveDirectory() { string[] srcFiles = { VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0\folder0\file0.bin"), }; string[] dstFiles = { VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1\file0.bin"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1\folder0\file0.bin"), }; srcFiles.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); srcFiles.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); dstFiles.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); SafeOperations.MoveDirectory( VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1")); srcFiles.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); dstFiles.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Test_RelativeFileMove_Move"), true); }
public static void Test_RelativeFileMove_MoveDirectoryOperations() { string[] srcFiles = { VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0\folder0\file0.bin"), }; string[] dstFiles = { VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1\file0.bin"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1\folder0\file0.bin"), }; srcFiles.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); IEnumerable <IFileSystemOperation> operations = SafeOperations.MoveDirectoryOperations( VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder0"), VirtualDrive.VirtualFileName(@"Test_RelativeFileMove_Move\folder1")); IEnumerable <string> expected = new string[] { "Create directory \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder1\"", "Create directory \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder1\\folder0\"", "Move file \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder0\\folder0\\file0.bin\" to \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder1\\folder0\\file0.bin\"", "Move file \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder0\\file0.bin\" to \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder1\\file0.bin\"", "Delete directory \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder0\\folder0\"", "Delete directory \"\\\\virtualdrive\\Test_RelativeFileMove_Move\\folder0\"" }; UnitTest.Test(operations.Select(n => n.ToString()).SequenceEqual(expected)); srcFiles.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); dstFiles.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); foreach (var operation in operations) { operation.Do(); } srcFiles.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); dstFiles.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); foreach (var operation in operations.Reverse()) { operation.Undo(); } srcFiles.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); dstFiles.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Test_RelativeFileMove_Move"), true); }