Пример #1
0
        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));
        }
Пример #2
0
 public VirtualPath(string id)
 {
     Parts = VirtualDrive.Split(id);
 }
Пример #3
0
 public void Dispose()
 {
     VirtualDrive.FreeFile(Id, Type);
 }
Пример #4
0
 public static void Exit()
 {
     VirtualDrive.DeleteDirectory(recycleBinFolder, true);
 }
Пример #5
0
 public static void Init()
 {
     VirtualDrive.Store(Path.Combine(recycleBinFolder, "tmp.bin"), null);
     RecycleBin.Instance.RootDir = recycleBinFolder;
 }
Пример #6
0
 private string RecycleBinNameDir()
 {
     return(VirtualDrive.GetDirectories(RootDir).Length.ToString());
 }
Пример #7
0
 private string RecycleBinNameFile()
 {
     return(VirtualDrive.GetFiles(RootDir, "*.*").Length.ToString() + ".trash");
 }