private static void TestVirtualDriveMoveDirectory() { string filename00 = VirtualDrive.VirtualFileName(@"Testdir0\testfile0.bin"); string filename01 = VirtualDrive.VirtualFileName(@"Testdir0\testfile1.bin"); string filename10 = VirtualDrive.VirtualFileName(@"Testdir1\testfile0.bin"); string filename11 = VirtualDrive.VirtualFileName(@"Testdir1\testfile1.bin"); VirtualDrive.Store(filename00, null); VirtualDrive.Store(filename01, null); UnitTest.Test(VirtualDrive.ExistsFile(filename00)); UnitTest.Test(VirtualDrive.ExistsFile(filename01)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); VirtualDrive.MoveDirectory( VirtualDrive.VirtualFileName("Testdir0"), VirtualDrive.VirtualFileName("Testdir1")); UnitTest.Test(!VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir1"))); UnitTest.Test(VirtualDrive.ExistsFile(filename10)); UnitTest.Test(VirtualDrive.ExistsFile(filename11)); VirtualDrive.DeleteDirectory( VirtualDrive.VirtualFileName("Testdir1"), true); }
private static void TestAccessObserverMoveDir() { bool didOpenCalledBack = false; bool didCloseCalledBack = false; string folder0 = VirtualDrive.VirtualFileName("myFolder0"); string folder1 = VirtualDrive.VirtualFileName("myFolder1"); string fileName0 = VirtualDrive.VirtualFileName(@"myFolder0\myFile0.bin"); string fileName1 = VirtualDrive.VirtualFileName(@"myFolder0\myFile1.bin"); VirtualDrive.Store(fileName0, new byte[] { }); VirtualDrive.Store(fileName1, new byte[] { }); UnitTest.Test(VirtualDrive.ExistsDirectory(folder0)); EventHandler <AccessObserver.AccessObserverEventArgs> freeHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == folder0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == VirtualDrive.VirtualFileName(@"myFolder1\myFile0.bin")); UnitTest.Test(args.Type == AccessObserver.AccessType.Move); UnitTest.Test(args.Request == AccessObserver.AccessRequest.FreeShared); didCloseCalledBack = true; VirtualDrive.ObserverFreeShared.Unregister(fileName0); UnitTest.Test(VirtualDrive.ObserverFreeShared.CountObservedIds == 0); }; EventHandler <AccessObserver.AccessObserverEventArgs> lockHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == folder0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == fileName0); UnitTest.Test(args.Type == AccessObserver.AccessType.Move); UnitTest.Test(args.Request == AccessObserver.AccessRequest.LockExclusive); didOpenCalledBack = true; VirtualDrive.ObserverLockExclusive.Unregister(fileName0); UnitTest.Test(VirtualDrive.ObserverLockExclusive.CountObservedIds == 0); VirtualDrive.ObserverFreeShared.Register(fileName0, freeHandler); }; VirtualDrive.ObserverLockExclusive.Register(fileName0, lockHandler); UnitTest.Test(!didOpenCalledBack); UnitTest.Test(!didCloseCalledBack); VirtualDrive.MoveDirectory(folder0, folder1); UnitTest.Test(didOpenCalledBack); UnitTest.Test(didCloseCalledBack); UnitTest.Test(VirtualDrive.ExistsDirectory(folder1)); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName(folder1), true); UnitTest.Test(!VirtualDrive.ExistsDirectory(folder0)); UnitTest.Test(!VirtualDrive.ExistsDirectory(folder1)); }