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(); }
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); } } }
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); }