public void FailedToLogToRedis_FailedConnectionToRedis() { var errorHandler = new Log4NetErrorHandler(); var mockMultiplexer = BuildFailingConnectionMultiplexer(); var mockAppender = BuildSuccessAppender(mockMultiplexer, errorHandler); var loggingEvent = new LoggingEvent(typeof(AppenderTests), null, "LoggerName", Level.Info, "Example of a Redis Stream logging entry", null); mockAppender.Object.DoAppend(loggingEvent); Assert.NotNull(errorHandler.LogException); Assert.IsAssignableFrom <RedisConnectionException>(errorHandler.LogException); }
public void SuccessfulLogger() { var errorHandler = new Log4NetErrorHandler(); var mockDatabase = BuildDatabase("SUCCESS_ID"); var mockMultiplexer = BuildSuccessConnectionMultiplexer(mockDatabase); var mockAppender = BuildSuccessAppender(mockMultiplexer, errorHandler); var loggingEvent = new LoggingEvent(typeof(AppenderTests), null, "LoggerName", Level.Info, "Example of a Redis Stream logging entry", null); mockAppender.Object.DoAppend(loggingEvent); Assert.Null(errorHandler.LogException); }
public void FailedToLogToRedis_IncorrectReturnMessageId() { var errorHandler = new Log4NetErrorHandler(); var mockDatabase = BuildDatabase(RedisValue.Null); var mockMultiplexer = BuildSuccessConnectionMultiplexer(mockDatabase); var mockAppender = BuildSuccessAppender(mockMultiplexer, errorHandler); var loggingEvent = new LoggingEvent(typeof(AppenderTests), null, "LoggerName", Level.Info, "Example of a Redis Stream logging entry", null); mockAppender.Object.DoAppend(loggingEvent); Assert.NotNull(errorHandler.LogException); Assert.IsAssignableFrom <RedisException>(errorHandler.LogException); }
public void Logging_ConfigurationElementsMissing() { var errorHandler = new Log4NetErrorHandler(); var mockDatabase = BuildDatabase("SUCCESS_ID"); var mockMultiplexer = BuildSuccessConnectionMultiplexer(mockDatabase); var mockAppender = BuildSuccessAppender(mockMultiplexer, errorHandler); mockAppender.SetupProperty(_ => _.RedisConnectionString, null); mockAppender.SetupProperty(_ => _.RedisStreamName, null); var loggingEvent = new LoggingEvent(typeof(AppenderTests), null, "LoggerName", Level.Info, "Example of a Redis Stream logging entry", null); mockAppender.Object.DoAppend(loggingEvent); Assert.NotNull(errorHandler.LogException); Assert.IsAssignableFrom <InvalidOperationException>(errorHandler.LogException); Assert.Equal("Logging configuration elements are not correctly set.", errorHandler.Message); }
private Mock <RedisStreamAppender> BuildSuccessAppender(Mock <IConnectionMultiplexer> mockMultiplexer, Log4NetErrorHandler errorHandler) { var mockAppender = new Mock <RedisStreamAppender>() { CallBase = true }; //mockAppender.Setup(_ => _.RedisConnectionString).Returns("a"); //mockAppender.Setup(_ => _.RedisStreamName).Returns("b"); mockAppender.SetupProperty(_ => _.RedisConnectionString, "a"); mockAppender.SetupProperty(_ => _.RedisStreamName, "b"); mockAppender.Setup(_ => _.ConnectToRedis()) .Returns(mockMultiplexer.Object); mockAppender.Object.Threshold = Level.Info; mockAppender.Object.ErrorHandler = errorHandler; mockAppender.Object.Layout = new PatternLayout("%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"); return(mockAppender); }