public void NoOpLogger_DisableWarnLog_MessageNotExposedTest()
        {
            //Arrange
            var messages = new List <Tuple <LogLevel, string, Exception> >();
            var logger   = new NoOpLogger("Test");

            logger.IsWarnEnabled      = false;
            logger.LogMessageHandler += (x, y, z) => messages.Add(new Tuple <LogLevel, string, Exception>(x, y, z));
            var testMessage   = "Test message";
            var testException = new Exception("Test");

            //Act
            logger.Warn(testMessage);
            logger.Warn(testException);
            logger.Warn(testMessage, testException);
            //Assert
            Assert.AreEqual(0, messages.Count);
        }
        public void NoOpLogger_WarnLog_MessageExposedTest()
        {
            //Arrange
            var messages = new List <Tuple <LogLevel, string, Exception> >();
            var logger   = new NoOpLogger("Test");

            logger.IsWarnEnabled      = true;
            logger.LogMessageHandler += (x, y, z) => messages.Add(new Tuple <LogLevel, string, Exception>(x, y, z));
            var testMessage   = "Test message";
            var testException = new Exception("Test");

            //Act
            logger.Warn(testMessage);
            logger.Warn(testException);
            logger.Warn(testMessage, testException);
            //Assert
            Assert.AreEqual(3, messages.Count);
            Assert.AreEqual(new Tuple <LogLevel, string, Exception>(LogLevel.Warn, testMessage, null), messages[0], "Log entry with message was not exposed correctly.");
            Assert.AreEqual(new Tuple <LogLevel, string, Exception>(LogLevel.Warn, string.Empty, testException), messages[1], "Log entry with exception was not exposed correctly.");
            Assert.AreEqual(new Tuple <LogLevel, string, Exception>(LogLevel.Warn, testMessage, testException), messages[2], "Log entry with message and exception was not exposed correctly.");
        }