public async void ShouldResetInternalBufferPositionsAfterOneChunkSpanningMessageIsRead() { var size = Constants.MaxChunkSize * 3; var data = IOExtensions.GenerateBoltMessage(size); var logger = new Mock <ILogger>(); var reader = new ChunkReader(new MemoryStream(data.ToArray()), logger.Object); var count = await reader.ReadNextMessagesAsync(new MemoryStream()); count.Should().Be(1); logger.Verify(l => l.Trace(It.IsRegex("^\\d+ bytes left in chunk buffer.*compacting\\.$"), It.IsAny <object[]>()), Times.AtLeast(size / Constants.ChunkBufferSize)); }
public void ShouldResetInternalBufferPositionsAfterOneLargeMessageIsRead() { var size = Constants.ChunkBufferSize - Constants.ChunkBufferResetPositionsWatermark; var data = IOExtensions.GenerateBoltMessage(size); var logger = new Mock <ILogger>(); var reader = new ChunkReader(new MemoryStream(data.ToArray()), logger.Object); var count = reader.ReadNextMessages(new MemoryStream()); count.Should().Be(1); logger.Verify(l => l.Trace(It.IsRegex("^\\d+ bytes left in chunk buffer.*compacting\\.$"), It.IsAny <object[]>()), Times.Once); }