public void ShouldReturnZeroWhenReaderIsClosed() { // Arrange var stream = new ProtoDataStream(this.CreateDataReader("foo")); stream.Read(new byte[1024], 0, 1024); // Act var result = stream.Read(new byte[1024], 0, 1024); // Assert Assert.Equal(0, result); }
public void It_should_populate_the_buffer_correctly() { using (var reader = testData.CreateDataReader()) using (var stream = new ProtoDataStream(reader)) { var buffer1 = new byte[16]; stream.Read(buffer1, 0, buffer1.Length).Should().Be(buffer1.Length); buffer1.Should().Have.SameSequenceAs(expectedBytes.Take(buffer1.Length)); stream.Read(buffer1, 0, 0).Should().Be(0); var buffer2 = new byte[16 * 1024]; stream.Read(buffer2, 0, buffer2.Length).Should().Be(buffer2.Length); buffer2.Should().Have.SameSequenceAs(expectedBytes.Skip(buffer1.Length).Take(buffer2.Length)); } }
public void It_should_populate_the_buffer_correctly() { using (var reader = this.testData.CreateDataReader()) using (var stream = new ProtoDataStream(reader)) { var buffer1 = new byte[16]; var buffer1Readed = stream.Read(buffer1, 0, buffer1.Length); Assert.Equal(buffer1.Length, buffer1Readed); Assert.Equal(this.expectedBytes.Take(buffer1.Length), buffer1); buffer1Readed = stream.Read(buffer1, 0, 0); Assert.Equal(0, buffer1Readed); var buffer2 = new byte[16 * 1024]; var buffer2Readed = stream.Read(buffer2, 0, buffer2.Length); Assert.Equal(buffer2.Length, buffer2Readed); Assert.Equal(this.expectedBytes.Skip(buffer1.Length).Take(buffer2.Length), buffer2); } }
public void ShouldDisposeReader() { // Arrange var reader = this.CreateDataReader("foo"); var stream = new ProtoDataStream(reader); // Act stream.Read(new byte[1024], 0, 1024); // Assert Assert.Throws <InvalidOperationException>(() => reader.FieldCount); }
public void ShouldSerializeUsingMultipleIterations() { // Arrange var stream = new ProtoDataStream(this.CreateDataReader("foo", 1000)); var outputStream = new MemoryStream(); var buffer = new byte[1]; int read; // Act while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) { outputStream.Write(buffer, 0, read); } // Assert outputStream.Position = 0; var reader = ProtoReader.Create(outputStream, null, null); Assert.Equal(ResultFieldHeader, reader.ReadFieldHeader()); }