public void ShrinkPositionStaysAtEnd() { using (StreamBuffer buffer = new StreamBuffer(0)) { buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3); buffer.Position.Should().Be(3); buffer.Length.Should().Be(3); buffer.SetLength(2); buffer.Position.Should().Be(2); buffer.Length.Should().Be(2); } }
public void PositionTest() { using (StreamBuffer buffer = new StreamBuffer(0)) { byte[] data = new byte[] { 0xA, 0xB, 0xC }; buffer.Write(data, 0, data.Length); buffer.Position.Should().Be(data.Length); for (int i = 0; i < data.Length; i++) { buffer.Position = i; buffer.ReadByte().Should().Be(data[i]); } } }
public void SeekSucceeds() { using (StreamBuffer buffer = new StreamBuffer(0)) { buffer.Length.Should().Be(0); buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3); buffer.Length.Should().Be(3); buffer.Seek(0, SeekOrigin.Begin); buffer.ReadByte().Should().Be(0xA); buffer.Seek(-1, SeekOrigin.Current); buffer.ReadByte().Should().Be(0xA); buffer.Seek(1, SeekOrigin.Current); buffer.ReadByte().Should().Be(0xC); buffer.Seek(1, SeekOrigin.Begin); buffer.ReadByte().Should().Be(0xB); buffer.Seek(-2, SeekOrigin.End); buffer.ReadByte().Should().Be(0xB); } }
public void AppendTwice() { using (StreamBuffer buffer = new StreamBuffer(0)) { buffer.Length.Should().Be(0); buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3); buffer.Position.Should().Be(3); buffer.Length.Should().Be(3); buffer.Position = 0; byte[] output = new byte[3]; buffer.Read(output, 0, 3); buffer.Position.Should().Be(3); output.ShouldAllBeEquivalentTo(new byte[] { 0xA, 0xB, 0xC }); buffer.Write(new byte[] { 0xD, 0xE, 0xF }, 0, 3); buffer.Position.Should().Be(6); buffer.Length.Should().Be(6); buffer.Position = 0; output = new byte[6]; buffer.Read(output, 0, 6); output.ShouldAllBeEquivalentTo(new byte[] { 0xA, 0xB, 0xC, 0xD, 0xE, 0xF }); } }
public void EmptyBufferThrowsOnPositiveCountWrite() { using (StreamBuffer buffer = new StreamBuffer(0)) { Action action = () => buffer.Write(new byte[0], 0, 1); action.ShouldThrow<ArgumentException>(); } }
public void EmptyBufferDoesNotThrowOnPositiveOffsetWriteOfNoCharacters() { using (StreamBuffer buffer = new StreamBuffer(0)) { buffer.Write(new byte[0], 1, 0); } }
public void EmptyBufferThrowsOnNegativeOffsetWrite() { using (StreamBuffer buffer = new StreamBuffer(0)) { Action action = () => buffer.Write(new byte[0], -1, 0); action.ShouldThrow<ArgumentOutOfRangeException>(); } }
public void EmptyBufferThrowsOnNullBufferWrite() { using (StreamBuffer buffer = new StreamBuffer(0)) { Action action = () => buffer.Write(null, 0, 0); action.ShouldThrow<ArgumentNullException>(); } }
public void EmptyBufferCanWriteNothing() { using (StreamBuffer buffer = new StreamBuffer(0)) { buffer.Write(new byte[0], 0, 0); } }