private static void TestVirtualDriveCopyDirectory() { 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.CopyDirectory( VirtualDrive.VirtualFileName("Testdir0"), VirtualDrive.VirtualFileName("Testdir1")); UnitTest.Test(VirtualDrive.ExistsFile(filename00)); UnitTest.Test(VirtualDrive.ExistsFile(filename01)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); UnitTest.Test(VirtualDrive.ExistsFile(filename10)); UnitTest.Test(VirtualDrive.ExistsFile(filename11)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir1"))); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Testdir0"), true); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Testdir1"), true); }
public static void Test_FileWalker() { string[] files = { VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\file1.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\folder0\file1.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder1\file2.bin"), }; string[] expected = { "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0\\file0.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0\\file1.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\file0.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\file1.bin", "\\\\virtualdrive\\Test_FileWalker\\folder1\\file2.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0", "\\\\virtualdrive\\Test_FileWalker\\folder0", "\\\\virtualdrive\\Test_FileWalker\\folder1", "\\\\virtualdrive\\Test_FileWalker", }; files.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); FileWalker walker = new FileWalker(VirtualDrive.VirtualFileName("Test_FileWalker")); UnitTest.Test(walker.Files.Concat(walker.Directories).SequenceEqual(expected)); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Test_FileWalker"), true); }
public static void Test_RecycleBin_MoveToRecycleBin_Files() { fileNames.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); fileNames.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); fileNames.ForEach(n => RecycleBin.Instance.MoveToRecycleBin(n)); fileNames.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); }
private static void TestAccessObserverMoveFile() { bool didOpenCalledBack = false; bool didCloseCalledBack = false; string fileName0 = VirtualDrive.VirtualFileName(@"myFile0.bin"); string fileName1 = VirtualDrive.VirtualFileName(@"myFile1.bin"); VirtualDrive.Store(fileName0, new byte[] { }); EventHandler <AccessObserver.AccessObserverEventArgs> freeHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == fileName0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == fileName1); 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 == fileName0); 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.MoveFile(fileName0, fileName1); UnitTest.Test(didOpenCalledBack); UnitTest.Test(didCloseCalledBack); VirtualDrive.DeleteFile(fileName1); }
private static void TestVirtualDriveExistsDirectory() { UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("TestID3VirtualDrive"))); UnitTest.Test(!VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("ARandomPath"))); string folder = VirtualDrive.VirtualFileName("folder"); string fileName = Path.Combine(folder, "t00.bin"); VirtualDrive.Store(fileName, null); UnitTest.Test(VirtualDrive.ExistsDirectory(folder)); UnitTest.Test(!VirtualDrive.ExistsDirectory(fileName)); VirtualDrive.DeleteFile(fileName); }
private static void TestVirtualDriveDeleteDirectory() { VirtualDrive.Store( VirtualDrive.VirtualFileName(@"Testdir0\testfile0.bin"), null); VirtualDrive.Store( VirtualDrive.VirtualFileName(@"Testdir0\testfile1.bin"), null); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); VirtualDrive.DeleteDirectory( VirtualDrive.VirtualFileName("Testdir0"), true); UnitTest.Test(!VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); }
private static void TestGetFiles() { string[] fileNames = new string[] { VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0\Data1.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1\Data2.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1\Data3.bin") }; foreach (var file in fileNames) { VirtualDrive.Store(file, new byte[] { }); } string[] files0 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles"), "*.bin"); UnitTest.Test(files0.Length == 0); string[] files1 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0"), "*.bin"); UnitTest.Test(files1.Length == 2); UnitTest.Test(files1[0] == fileNames[0]); UnitTest.Test(files1[1] == fileNames[1]); string[] files2 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1"), "*.bin"); UnitTest.Test(files2.Length == 2); UnitTest.Test(files2[0] == fileNames[2]); UnitTest.Test(files2[1] == fileNames[3]); foreach (var file in fileNames) { VirtualDrive.DeleteFile(file); } }
private static void TestGetDirectories() { string[] fileNames = new string[] { VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0\Data1.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1\Data1.bin") }; foreach (var file in fileNames) { VirtualDrive.Store(file, new byte[] {}); } string[] dirs = VirtualDrive.GetDirectories(VirtualDrive.VirtualFileName(@"TestGetDirectories")); UnitTest.Test(dirs.Length == 2); UnitTest.Test(dirs[0] == VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0")); UnitTest.Test(dirs[1] == VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1")); foreach (var file in fileNames) { VirtualDrive.DeleteFile(file); } }
public static void Init() { VirtualDrive.Store(Path.Combine(recycleBinFolder, "tmp.bin"), null); RecycleBin.Instance.RootDir = recycleBinFolder; }