public void ReadAt_MultiplePages_NonZeroOffset() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { var handle = file.Allocate(); var data = new byte[8000]; for (int i = 0; i < 8000; i++) data[i] = (byte)(i % 255); file.Write(handle, data, 0, 8000); var readData = new byte[4000]; var readBytes = file.ReadAt(handle, readData, 2000, 4000); for (int i = 0; i < 4000; i++) Assert.AreEqual(data[i + 2000], readData[i]); Assert.AreEqual((uint)4000, readBytes); } var stream = msf.Stream; stream.AllowDispose = true; stream.Dispose(); }
public void ReadAt_BufferSmallerThanCount_ExpectsException() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { var handle = file.Allocate(); var data = new byte[255]; for (byte i = 0; i < 255; i++) data[i] = i; file.Write(handle, data, 0, 255); var readData = new byte[255]; var readBytes = file.ReadAt(handle, readData, 0, 512); for (byte i = 0; i < 255; i++) Assert.AreEqual(i, readData[i]); Assert.AreEqual((uint)255, readBytes); } var stream = msf.Stream; stream.AllowDispose = true; stream.Dispose(); }
public void InitializeFile_ReadAt_ExpectsOk() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { var handle = file.Allocate(); var data = new byte[255]; for (byte i = 0; i < 255; i++) data[i] = i; file.Write(handle, data, 0, 255); var readData = new byte[10]; file.ReadAt(handle, readData, 10, 10); for(byte i=0;i<10;i++) Assert.AreEqual(i + 10, readData[i]); } var stream = msf.Stream; stream.AllowDispose = true; stream.Dispose(); }
public void InitializeFile_Validate_ExpectsOk() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { Assert.IsTrue(file.ValidateCrc()); } var stream = msf.Stream; stream.AllowDispose = true; stream.Dispose(); }
public void InitializeFile_VerifyHeader() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { } var stream = msf.Stream; var buffer = new byte[4]; stream.Position = 50; stream.Read(buffer, 0, 2); ushort version = System.BitConverter.ToUInt16(buffer, 0); Assert.AreEqual((ushort)1, version); stream.Position = 52; stream.Read(buffer, 0, 2); ushort pageSize = System.BitConverter.ToUInt16(buffer, 0); Assert.AreEqual((ushort)4096, pageSize); stream.Position = 54; stream.Read(buffer, 0, 2); ushort chapterSize = System.BitConverter.ToUInt16(buffer, 0); Assert.AreEqual((ushort)4096, chapterSize); stream.Position = 60; stream.Read(buffer, 0, 4); uint firstFreePage = System.BitConverter.ToUInt32(buffer, 0); Assert.AreEqual((uint)1, firstFreePage); stream.AllowDispose = true; stream.Dispose(); }
public void InitializeFile_VerifyLength() { const string path = "xxx"; var msf = new UndisposableMemoryStreamFactory(); using (var file = new CompoundFile(path, new CompoundFile.CompoundFileOptions(), msf)) { } var stream = msf.Stream; Assert.AreEqual(4096 * 4096, stream.Length); stream.AllowDispose = true; stream.Dispose(); }