Example #1
0
        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);
        }
Example #2
0
        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);
        }