public void Trace_LogAnonymousObjectOnEnabledLevel_LogsMessage() { var logger = new TestableLogger(Level.Trace, _output); int number = Factory.GetInteger(); LoggerExtensions.Trace(logger, new { message = "Hello", number }); Assert.Equal($"TRACE: {{\"message\":\"Hello\",\"number\":{number}}}", logger.Messages.First()); }
public void Trace_LogAnonymousObjectOnEnabledLevel_VerifyLog() { var logMock = new Mock <ILogger>(); int number = Factory.GetInteger(); LoggerExtensions.Trace(logMock.Object, new { message = "Hello", number }); logMock.VerifyLog <object>(Level.Trace, Times.Once()); }
public void Trace_LogAnonymousObjectAndExceptionOnEnabledLevel_VerifyLog() { var logMock = new Mock <ILogger>(); int number = Factory.GetInteger(); var exception = new Exception("OMG!"); LoggerExtensions.Trace(logMock.Object, new { message = "Hello", number }, exception); logMock.VerifyLog <object, Exception>(Level.Trace, exception, Times.Once()); }
public void Trace_LazyLogAnonymousObjectOnEnabledLevel_CallMessageFormatter() { bool isInvoked = false; var logger = new TestableLogger(Level.Trace, _output); int state = Factory.GetInteger(); LoggerExtensions.Trace(logger, state, number => { isInvoked = true; return(new { message = "Hello", number }); }); Assert.True(isInvoked); }
public void Trace_LazyLogAnonymousObjectAndExceptionOnDisabledLevel_DoesNotCallMessageFormatter() { bool isInvoked = false; var logger = new TestableLogger(Level.Error, _output); int state = Factory.GetInteger(); LoggerExtensions.Trace(logger, state, new Exception("OMG!"), (number, ex) => { isInvoked = true; return(new { message = "Hello", number }); }); Assert.False(isInvoked); }