Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }