public void ReadTwoInts() { using (var buffer = new HeapBuffer(8)) { for (ulong i = 0; i < 8; i++) { buffer[i] = (byte)(i + 1); } var reader = new CheckedReader(buffer); reader.ReadInt().Should().Be(0x04030201); reader.ReadInt().Should().Be(0x08070605); } }
public void ReadIntInCapacityPasses() { using (var buffer = new HeapBuffer(4)) { var reader = new CheckedReader(buffer); reader.ByteOffset = buffer.ByteCapacity - 4; reader.ReadInt(); } }
public void ReadInt(ulong offset, int expected) { using (var buffer = new HeapBuffer(8)) { for (ulong i = 0; i < 8; i++) { buffer[i] = (byte)(i + 1); } var reader = new CheckedReader(buffer); reader.ByteOffset = offset; reader.ReadInt().Should().Be(expected, $"offset is {offset}"); } }
public void ReadIntPastCapacityFails() { using (var buffer = new HeapBuffer(sizeof(int))) { var reader = new CheckedReader(buffer); Action action = () => reader.ReadInt(); for (uint i = 1; i < sizeof(int); i++) { reader.ByteOffset = buffer.ByteCapacity - i; action.Should().Throw <System.IO.EndOfStreamException>(); } } }