public void ProcessLogEntryDoesNotCallSendToLogProviderForLogProvidersWithALevelGreaterThanTheLogEntry() { var logProcessor = new TestLogProcessor(); var mockContextProvider = new Mock <IContextProvider>(); var mockLogProvider1 = new Mock <ILogProvider>(); var mockLogProvider2 = new Mock <ILogProvider>(); mockLogProvider1.Setup(m => m.Level).Returns(LogLevel.Error); mockLogProvider2.Setup(m => m.Level).Returns(LogLevel.Info); var logger = new Logger(logProcessor, logProviders: new[] { mockLogProvider1.Object, mockLogProvider2.Object }, contextProviders: new[] { mockContextProvider.Object }); var logEntry = new LogEntry() { Level = LogLevel.Info }; logProcessor.ProcessLogEntry(logger, logEntry); logProcessor.SendToLogProviderInvocations.Count.Should().Be(1); var invocation = logProcessor.SendToLogProviderInvocations[0]; invocation.LogProvider.Should().BeSameAs(mockLogProvider2.Object); invocation.LogEntry.Should().BeSameAs(logEntry); invocation.ErrorHandler.Should().BeSameAs(NullErrorHandler.Instance); invocation.FailureCount.Should().Be(0); logProcessor.HandleErrorInvocations.Should().BeEmpty(); }
public void ProcessLogEntryCallsSendToLogProviderForEachLogProvider() { var logProcessor = new TestLogProcessor(); var mockContextProvider = new Mock <IContextProvider>(); var mockLogProvider1 = new Mock <ILogProvider>(); var mockLogProvider2 = new Mock <ILogProvider>(); var logger = new Logger(logProcessor, logProviders: new[] { mockLogProvider1.Object, mockLogProvider2.Object }, contextProviders: new[] { mockContextProvider.Object }); var logEntry = new LogEntry(); logProcessor.ProcessLogEntry(logger, logEntry); logProcessor.SendToLogProviderInvocations.Count.Should().Be(2); var invocation1 = logProcessor.SendToLogProviderInvocations[0]; var invocation2 = logProcessor.SendToLogProviderInvocations[1]; invocation1.LogProvider.Should().BeSameAs(mockLogProvider1.Object); invocation1.LogEntry.Should().BeSameAs(logEntry); invocation1.ErrorHandler.Should().BeSameAs(NullErrorHandler.Instance); invocation1.FailureCount.Should().Be(0); invocation2.LogProvider.Should().BeSameAs(mockLogProvider2.Object); invocation2.LogEntry.Should().BeSameAs(logEntry); invocation2.ErrorHandler.Should().BeSameAs(NullErrorHandler.Instance); invocation2.FailureCount.Should().Be(0); logProcessor.HandleErrorInvocations.Should().BeEmpty(); }
public void IfSendToLogProviderThrowsHandleErrorIsCalled() { var logProcessor = new TestLogProcessor(sendToLogProviderShouldThrow: true); var mockContextProvider = new Mock <IContextProvider>(); var mockLogProvider = new Mock <ILogProvider>(); var logger = new Logger(logProcessor, logProviders: new[] { mockLogProvider.Object }, contextProviders: new[] { mockContextProvider.Object }); var logEntry = new LogEntry(); logProcessor.ProcessLogEntry(logger, logEntry); logProcessor.HandleErrorInvocations.Count.Should().Be(1); var invocation = logProcessor.HandleErrorInvocations[0]; invocation.Exception.Message.Should().Be("error."); invocation.LogProvider.Should().BeSameAs(mockLogProvider.Object); invocation.LogEntry.Should().BeSameAs(logEntry); invocation.ErrorHandler.Should().BeSameAs(NullErrorHandler.Instance); invocation.FailureCount.Should().Be(1); }
public void ProcessLogEntryCallsContextProvidersAddContextMethod() { var logProcessor = new TestLogProcessor(); var mockContextProvider1 = new Mock <IContextProvider>(); var mockContextProvider2 = new Mock <IContextProvider>(); var mockLogProvider = new Mock <ILogProvider>(); var logger = new Logger(logProcessor, logProviders: new[] { mockLogProvider.Object }, contextProviders: new[] { mockContextProvider1.Object, mockContextProvider2.Object }); var logEntry = new LogEntry(); logProcessor.ProcessLogEntry(logger, logEntry); mockContextProvider1.Verify(m => m.AddContext(logEntry), Times.Once); mockContextProvider2.Verify(m => m.AddContext(logEntry), Times.Once); }