public async Task BatchLogs() { _logCounter = 0; var mockLogger = new Mock <ISyncLogger>(); mockLogger.Setup(logger => logger.LogSync( It.IsAny <LogRecord>())) .Callback((LogRecord lr) => { Assert.IsTrue(FulcrumApplication.Context.IsInBatchLogger); Interlocked.Increment(ref _logCounter); }) .Verifiable(); FulcrumApplication.Setup.SynchronousFastLogger = new BatchLogger(mockLogger.Object); FulcrumApplication.Setup.LogSeverityLevelThreshold = LogSeverityLevel.Information; var doLogging = new LogFiveTimesHandler(async c => await Task.CompletedTask); var options = new NexusLinkMiddlewareOptions(); options.Features.BatchLog.Enabled = true; options.Features.BatchLog.Threshold = LogSeverityLevel.Warning; var handler = new Pipe.NexusLinkMiddleware(doLogging.InvokeAsync, options); var context = new DefaultHttpContext(); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); await handler.InvokeAsync(context); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); mockLogger.Verify(); }
public async Task BatchLogs() { _logCounter = 0; var mockLogger = new Mock <ISyncLogger>(); mockLogger.Setup(logger => logger.LogSync( It.IsAny <LogRecord>())) .Callback((LogRecord lr) => { Assert.IsTrue(FulcrumApplication.Context.IsInBatchLogger); Interlocked.Increment(ref _logCounter); }) .Verifiable(); FulcrumApplication.Setup.SynchronousFastLogger = new BatchLogger(mockLogger.Object); FulcrumApplication.Setup.LogSeverityLevelThreshold = LogSeverityLevel.Information; #if NETCOREAPP var doLogging = new LogFiveTimesHandler(async c => await Task.CompletedTask); var batchLogsHandler = new BatchLogs(doLogging.InvokeAsync, LogSeverityLevel.Warning); var context = new DefaultHttpContext(); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); await batchLogsHandler.InvokeAsync(context); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); #else var handler = new BatchLogs(LogSeverityLevel.Warning) { InnerHandler = new LogFiveTimesHandler() }; var invoker = new HttpMessageInvoker(handler); var request = new HttpRequestMessage(HttpMethod.Get, "https://v-mock.org/v2/smoke-testing-company/ver"); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); await invoker.SendAsync(request, CancellationToken.None); Assert.IsFalse(FulcrumApplication.Context.IsInBatchLogger); #endif mockLogger.Verify(); }