public async void ShouldResetInternalBufferPositionsWhenWritableBufferIsSmallerThanSetWatermarkAsync() { var input = GenerateMessageChunk(Constants.ChunkBufferSize - Constants.ChunkBufferResetPositionsWatermark); var logger = LoggingHelper.GetTraceEnabledLogger(); var reader = new ChunkReader(new MemoryStream(input), logger.Object); var count = await reader.ReadNextMessagesAsync(new MemoryStream()); count.Should().Be(1); logger.Verify(l => l.Trace(It.IsRegex(CompactingArgumentRegEx), It.IsAny <object[]>()), Times.Once); }
public void ShouldResetInternalBufferPositionsWhenAMessageOfNChunks() { var size = 3 * Constants.MaxChunkSize; var input = GenerateMessageChunk(3 * Constants.MaxChunkSize); var logger = LoggingHelper.GetTraceEnabledLogger(); var reader = new ChunkReader(new MemoryStream(input), logger.Object); var count = reader.ReadNextMessages(new MemoryStream()); count.Should().Be(1); logger.Verify(l => l.Trace(It.IsRegex(CompactingArgumentRegEx), It.IsAny <object[]>()), Times.AtLeast(size / Constants.ChunkBufferSize)); }
public void LogsTheMessageToDebug() { var mockResultBuilder = new Mock <IMessageResponseCollector>(); var mockLogger = LoggingHelper.GetTraceEnabledLogger(); var mrh = new MessageResponseHandler(mockLogger.Object); mrh.EnqueueMessage(PullAll, mockResultBuilder.Object); mrh.HandleFailureMessage("code.error", "message"); mockLogger.Verify(x => x.Debug(It.Is <string>(actual => actual.StartsWith("S: ")), It.Is <object[]>(actual => actual.First() is FailureMessage)), Times.Once); }
public async void ShouldResetInternalBufferPositionsWhenWritableBufferIsSmallerThanSetWatermarkWithConsecutiveMessagesAsync() { const int messageSizePerChunk = 1000; const int maxBytes = Constants.ChunkBufferSize; var input = GenerateMessages(messageSizePerChunk, maxBytes); var logger = LoggingHelper.GetTraceEnabledLogger(); var reader = new ChunkReader(new MemoryStream(input), logger.Object); var count = await reader.ReadNextMessagesAsync(new MemoryStream()); count.Should().BeGreaterOrEqualTo(maxBytes / messageSizePerChunk); logger.Verify(l => l.Trace(It.IsRegex(CompactingArgumentRegEx), It.IsAny <object[]>()), Times.Once); }
public void LogsTheMessageToDebug() { var mockResultBuilder = new Mock <IMessageResponseCollector>(); var mockLogger = LoggingHelper.GetTraceEnabledLogger(); var mrh = new MessageResponseHandler(mockLogger.Object); mrh.EnqueueMessage(PullAll, mockResultBuilder.Object); mrh.HandleSuccessMessage(new Dictionary <string, object> { { "fields", new List <object> { "x" } } }); mockLogger.Verify(x => x.Debug(It.Is <string>(actual => actual.StartsWith("S: ")), It.Is <object[]>(actual => actual.First() is SuccessMessage)), Times.Once); }
public async void ShouldLogDataOnSendAsync() { var buffer = Enumerable.Range(0, 10).Select(i => (byte)i).ToArray(); var stream = new MemoryStream(); var logger = LoggingHelper.GetTraceEnabledLogger(); var writer = new ChunkWriter(stream, logger.Object); // Write data writer.OpenChunk(); writer.Write(buffer, 0, buffer.Length); writer.CloseChunk(); logger.Verify(x => x.Trace("C: {0}", It.IsAny <string>()), Times.Never); await writer.SendAsync(); logger.Verify(x => x.Trace("C: {0}", It.IsAny <string>()), Times.Once); }