public void CanReadMary() { var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); Assert.That(Encoding.ASCII.GetBytes("M"), Is.EqualTo(ReadBytes(XZBlock, 1))); Assert.That(Encoding.ASCII.GetBytes("a"), Is.EqualTo(ReadBytes(XZBlock, 1))); Assert.That(Encoding.ASCII.GetBytes("ry"), Is.EqualTo(ReadBytes(XZBlock, 2))); }
public void CanReadPoemWithStreamReader() { var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); var sr = new StreamReader(XZBlock); Assert.Equal(sr.ReadToEnd(), Original); }
public void CanReadMary() { var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); Assert.Equal(Encoding.ASCII.GetBytes("M"), ReadBytes(XZBlock, 1)); Assert.Equal(Encoding.ASCII.GetBytes("a"), ReadBytes(XZBlock, 1)); Assert.Equal(Encoding.ASCII.GetBytes("ry"), ReadBytes(XZBlock, 2)); }
public void RecordsStreamStartOnInit() { using (Stream badStream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 })) { var block = new XZBlock(badStream, CheckType.CRC64, 8); Assert.That(block.StreamStartPosition, Is.EqualTo(0)); } }
private byte[] ReadBytes(XZBlock block, int bytesToRead) { byte[] buffer = new byte[bytesToRead]; var read = block.Read(buffer, 0, bytesToRead); if (read != bytesToRead) throw new EndOfStreamException(); return buffer; }
public void SkipsPaddingWhenPresent() { // CompressedIndexedStream's first block has 1-byte padding. var XZBlock = new XZBlock(CompressedIndexedStream, CheckType.CRC64, 8); var sr = new StreamReader(XZBlock); sr.ReadToEnd(); Assert.Equal(0L, CompressedIndexedStream.Position % 4L); }
public void NoopWhenNoPadding() { // CompressedStream's only block has no padding. var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); var sr = new StreamReader(XZBlock); sr.ReadToEnd(); Assert.Equal(0L, CompressedStream.Position % 4L); }
public void OnFindIndexBlockThrow() { var bytes = new byte[] { 0 }; using (Stream indexBlockStream = new MemoryStream(bytes)) { var XZBlock = new XZBlock(indexBlockStream, CheckType.CRC64, 8); Assert.Throws<XZIndexMarkerReachedException>(() => { ReadBytes(XZBlock, 1); }); } }
public void OnFindIndexBlockThrow() { var bytes = new byte[] { 0 }; using (Stream indexBlockStream = new MemoryStream(bytes)) { var XZBlock = new XZBlock(indexBlockStream, CheckType.CRC64, 8); Assert.Throws <XZIndexMarkerReachedException>(() => { ReadBytes(XZBlock, 1); }); } }
private byte[] ReadBytes(XZBlock block, int bytesToRead) { byte[] buffer = new byte[bytesToRead]; var read = block.Read(buffer, 0, bytesToRead); if (read != bytesToRead) { throw new EndOfStreamException(); } return(buffer); }
public void CrcIncorrectThrows() { var bytes = Compressed.Clone() as byte[]; bytes[20]++; using (Stream badCrcStream = new MemoryStream(bytes)) { Rewind(badCrcStream); var XZBlock = new XZBlock(badCrcStream, CheckType.CRC64, 8); var ex = Assert.Throws<InvalidDataException>(() => { ReadBytes(XZBlock, 1); }); Assert.That(ex.Message, Is.EqualTo("Block header corrupt")); } }
public void CrcIncorrectThrows() { var bytes = Compressed.Clone() as byte[]; bytes[20]++; using (Stream badCrcStream = new MemoryStream(bytes)) { Rewind(badCrcStream); var XZBlock = new XZBlock(badCrcStream, CheckType.CRC64, 8); var ex = Assert.Throws <InvalidDataException>(() => { ReadBytes(XZBlock, 1); }); Assert.Equal("Block header corrupt", ex.Message); } }
public void CanReadM() { var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); Assert.That(Encoding.ASCII.GetBytes("M"), Is.EqualTo(ReadBytes(XZBlock, 1))); }
public void CanReadPoemWithStreamReader() { var XZBlock = new XZBlock(CompressedStream, CheckType.CRC64, 8); var sr = new StreamReader(XZBlock); Assert.That(sr.ReadToEnd(), Is.EqualTo(Original)); }