public void WriteBytes_should_optimize_count_of_one() { using (var baseStream = Substitute.For <Stream>()) using (var stream = new BsonStreamAdapter(baseStream)) { var buffer = new byte[] { 1 }; stream.WriteBytes(buffer, 0, 1); baseStream.Received(1).WriteByte(1); } }
public void WriteBytes_should_optimize_count_of_one() { var mockBaseStream = new Mock <Stream>(); using (var baseStream = mockBaseStream.Object) using (var stream = new BsonStreamAdapter(baseStream)) { var buffer = new byte[] { 1 }; stream.WriteBytes(buffer, 0, 1); mockBaseStream.Verify(s => s.WriteByte(1), Times.Once); } }
public void WriteBytes_should_have_expected_effect( int length, int offset, int count) { using (var memoryStream = new MemoryStream()) using (var stream = new BsonStreamAdapter(memoryStream)) { var buffer = Enumerable.Range(0, length).Select(n => (byte)n).ToArray(); stream.WriteBytes(buffer, offset, count); memoryStream.ToArray().Should().Equal(buffer.Skip(offset).Take(count)); } }
public void BackpatchSize_should_backpatch_the_size( [Values(0, 1, 5)] int startPosition) { var bytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var length = bytes.Length - startPosition; var expectedBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Array.Copy(BitConverter.GetBytes(length), 0, expectedBytes, startPosition, 4); using (var memoryStream = new MemoryStream()) using (var stream = new BsonStreamAdapter(memoryStream)) { stream.WriteBytes(bytes, 0, bytes.Length); var position = stream.Position; stream.BackpatchSize(startPosition); memoryStream.ToArray().Should().Equal(expectedBytes); stream.Position.Should().Be(position); } }