Ejemplo n.º 1
0
        private static void TestVirtualDriveReWrite()
        {
            string fileName = VirtualDrive.VirtualFileName(
                @"TestID3VirtualDrive\file1");

            UnitTest.Test(!VirtualDrive.ExistsFile(fileName));

            Stream outStream0 = VirtualDrive.OpenOutStream(fileName);

            outStream0.WriteByte(0);
            outStream0.WriteByte(1);
            outStream0.WriteByte(2);
            outStream0.Close();

            UnitTest.Test(VirtualDrive.ExistsFile(fileName));
            UnitTest.Test(VirtualDrive.FileLength(fileName) == 3);

            Stream outStream1 = VirtualDrive.OpenOutStream(fileName);

            outStream1.WriteByte(5);
            outStream1.WriteByte(6);
            outStream1.Close();

            UnitTest.Test(VirtualDrive.ExistsFile(fileName));
            UnitTest.Test(VirtualDrive.FileLength(fileName) == 3);

            Stream inStream = VirtualDrive.OpenInStream(fileName);

            UnitTest.Test(inStream.ReadByte() == 5);
            UnitTest.Test(inStream.ReadByte() == 6);
            UnitTest.Test(inStream.ReadByte() == 2);
            inStream.Close();
        }
Ejemplo n.º 2
0
 public static void Store(string id, byte[] data)
 {
     using (Stream s = VirtualDrive.OpenOutStream(id))
     {
         if (!Object.ReferenceEquals(data, null))
         {
             s.Write(data, 0, data.Length);
         }
     }
 }
Ejemplo n.º 3
0
        private static void TestAccessObserverOpenWriteStream()
        {
            string fileName = VirtualDrive.VirtualFileName("myFile0.bin");

            bool didOpenCalledBack  = false;
            bool didCloseCalledBack = false;

            EventHandler <AccessObserver.AccessObserverEventArgs> freeHandler =
                delegate(object sender, AccessObserver.AccessObserverEventArgs args)
            {
                UnitTest.Test(args.AffectedId == fileName);
                UnitTest.Test(args.ObservedId == fileName);
                UnitTest.Test(args.Type == AccessObserver.AccessType.Write);
                UnitTest.Test(args.Request == AccessObserver.AccessRequest.FreeShared);

                didCloseCalledBack = true;

                VirtualDrive.ObserverFreeShared.Unregister(fileName);
                UnitTest.Test(VirtualDrive.ObserverFreeShared.CountObservedIds == 0);
            };

            EventHandler <AccessObserver.AccessObserverEventArgs> lockHandler =
                delegate(object sender, AccessObserver.AccessObserverEventArgs args)
            {
                UnitTest.Test(args.AffectedId == fileName);
                UnitTest.Test(args.ObservedId == fileName);
                UnitTest.Test(args.Type == AccessObserver.AccessType.Write);
                UnitTest.Test(args.Request == AccessObserver.AccessRequest.LockExclusive);

                didOpenCalledBack = true;

                VirtualDrive.ObserverLockExclusive.Unregister(fileName);
                UnitTest.Test(VirtualDrive.ObserverLockExclusive.CountObservedIds == 0);

                VirtualDrive.ObserverFreeShared.Register(fileName, freeHandler);
            };

            VirtualDrive.ObserverLockExclusive.Register(fileName, lockHandler);

            UnitTest.Test(!didOpenCalledBack);
            UnitTest.Test(!didCloseCalledBack);

            using (Stream stream = VirtualDrive.OpenOutStream(fileName))
            {
                UnitTest.Test(didOpenCalledBack);
                UnitTest.Test(!didCloseCalledBack);
            }

            UnitTest.Test(didOpenCalledBack);
            UnitTest.Test(didCloseCalledBack);
        }