예제 #1
0
        public void Log_ConfiguredForConsoleMessagesAndWarnings_ReceivingMessageWarningAndError_ShouldLogToConsoleOnlyMessageAndWarning()
        {
            var jobLogger           = JobLogger.GetInstance();
            var mockedConsoleWriter = new MockedConsoleWriter();

            var loggerConfiguration = new LoggerConfiguration(new List <ILogger> {
                new ConsoleLogger(mockedConsoleWriter)
            }, new List <LogLevel> {
                LogLevel.Message, LogLevel.Warning
            });

            jobLogger.Configure(loggerConfiguration);

            var message = new Message("This is the message");

            jobLogger.Log(message);

            var warning = new Warning("This is the warning");

            jobLogger.Log(warning);

            var error = new Error("This is the error");

            jobLogger.Log(error);

            AssertConsoleContent(mockedConsoleWriter.MockedMessages, new List <ILogMessage> {
                message, warning
            });

            Assert.AreEqual(2, mockedConsoleWriter.MockedMessages.Count);
        }
예제 #2
0
        public void Log_WithMultipleWarnings_ShouldLogMessage()
        {
            var mockedConsoleWriter = new MockedConsoleWriter();
            var logger = new ConsoleLogger(mockedConsoleWriter);

            var warning = new Warning("This is the message");

            logger.Log(warning);

            var warning2 = new Warning("This is the message");

            logger.Log(warning2);

            var loggedContent = mockedConsoleWriter.MockedMessages.ToList();

            Assert.AreEqual(2, loggedContent.Count);

            Assert.AreEqual(warning.Id, loggedContent[0].Id);
            Assert.AreEqual(warning.Date.ToString(CultureInfo.InvariantCulture), loggedContent[0].Date.ToString(CultureInfo.InvariantCulture));
            Assert.AreEqual(warning.LogLevel, loggedContent[0].LogLevel);
            Assert.AreEqual(warning.LogMessage, loggedContent[0].LogMessage);
            Assert.AreEqual(ConsoleColor.Yellow, loggedContent[0].ForegroundColor);

            Assert.AreEqual(warning2.Id, loggedContent[1].Id);
            Assert.AreEqual(warning2.Date.ToString(CultureInfo.InvariantCulture), loggedContent[1].Date.ToString(CultureInfo.InvariantCulture));
            Assert.AreEqual(warning2.LogLevel, loggedContent[1].LogLevel);
            Assert.AreEqual(warning2.LogMessage, loggedContent[1].LogMessage);
            Assert.AreEqual(ConsoleColor.Yellow, loggedContent[1].ForegroundColor);
        }
예제 #3
0
        public void Log_WithMultipleError_ShouldLogMessage()
        {
            var mockedConsoleWriter = new MockedConsoleWriter();
            var logger = new ConsoleLogger(mockedConsoleWriter);

            var error = new Error("This is the message");

            logger.Log(error);

            var error2 = new Error("This is the message");

            logger.Log(error2);

            var loggedContent = mockedConsoleWriter.MockedMessages.ToList();

            Assert.AreEqual(2, loggedContent.Count);

            Assert.AreEqual(error.Id, loggedContent[0].Id);
            Assert.AreEqual(error.Date.ToString(CultureInfo.InvariantCulture), loggedContent[0].Date.ToString(CultureInfo.InvariantCulture));
            Assert.AreEqual(error.LogLevel, loggedContent[0].LogLevel);
            Assert.AreEqual(error.LogMessage, loggedContent[0].LogMessage);
            Assert.AreEqual(ConsoleColor.Red, loggedContent[0].ForegroundColor);

            Assert.AreEqual(error2.Id, loggedContent[1].Id);
            Assert.AreEqual(error2.Date.ToString(CultureInfo.InvariantCulture), loggedContent[1].Date.ToString(CultureInfo.InvariantCulture));
            Assert.AreEqual(error2.LogLevel, loggedContent[1].LogLevel);
            Assert.AreEqual(error2.LogMessage, loggedContent[1].LogMessage);
            Assert.AreEqual(ConsoleColor.Red, loggedContent[1].ForegroundColor);
        }
예제 #4
0
        public void Log_ConfiguredForConsoleAndWarnings_ReceivingMessage_ShouldNotLogToConsole()
        {
            var jobLogger           = JobLogger.GetInstance();
            var mockedConsoleWriter = new MockedConsoleWriter();

            var loggerConfiguration = new LoggerConfiguration(new List <ILogger> {
                new ConsoleLogger(mockedConsoleWriter)
            }, new List <LogLevel> {
                LogLevel.Message
            });

            jobLogger.Configure(loggerConfiguration);

            var message = new Error("This is the message");

            jobLogger.Log(message);

            Assert.IsFalse(mockedConsoleWriter.MockedMessages.Any());
        }
예제 #5
0
        public void Log_ConfiguredForFileDatabaseAndConsoleWithMessagesWarningsAndErrors_ShouldLogToFileDatabaseAndConsole()
        {
            var jobLogger           = JobLogger.GetInstance();
            var mockedConsoleWriter = new MockedConsoleWriter();

            var loggerConfiguration = new LoggerConfiguration(new List <ILogger> {
                FileLogger.GetInstance(), new DatabaseLogger(), new ConsoleLogger(mockedConsoleWriter)
            }, new List <LogLevel> {
                LogLevel.Message, LogLevel.Warning, LogLevel.Error
            });

            jobLogger.Configure(loggerConfiguration);

            var message = new Message("This is the message");

            jobLogger.Log(message);

            var warning = new Warning("This is the warning");

            jobLogger.Log(warning);

            var error = new Error("This is the error");

            jobLogger.Log(error);

            var loggedContent = File.ReadAllLines(_filePath);

            Assert.AreEqual(3, loggedContent.Count());

            var count = AssertDatabaseContent(new List <ILogMessage> {
                message, warning, error
            });

            Assert.AreEqual(3, count);

            AssertConsoleContent(mockedConsoleWriter.MockedMessages, new List <ILogMessage> {
                message, warning, error
            });
            Assert.AreEqual(3, mockedConsoleWriter.MockedMessages.Count);
        }
예제 #6
0
        public void Log_WithValidWarning_ShouldLogMessage()
        {
            var mockedConsoleWriter = new MockedConsoleWriter();
            var logger = new ConsoleLogger(mockedConsoleWriter);

            var warning = new Warning("This is the message");

            logger.Log(warning);

            var loggedContent = mockedConsoleWriter.MockedMessages.ToList();

            Assert.AreEqual(1, loggedContent.Count);

            foreach (var content in loggedContent)
            {
                Assert.AreEqual(warning.Id, content.Id);
                Assert.AreEqual(warning.Date.ToString(CultureInfo.InvariantCulture), content.Date.ToString(CultureInfo.InvariantCulture));
                Assert.AreEqual(warning.LogLevel, content.LogLevel);
                Assert.AreEqual(warning.LogMessage, content.LogMessage);
                Assert.AreEqual(ConsoleColor.Yellow, content.ForegroundColor);
            }
        }
예제 #7
0
        public void Log_ConfiguredForConsoleAndMessages_ReceivingMessage_ShouldLogToConsole()
        {
            var jobLogger           = JobLogger.GetInstance();
            var mockedConsoleWriter = new MockedConsoleWriter();

            var loggerConfiguration = new LoggerConfiguration(new List <ILogger> {
                new ConsoleLogger(mockedConsoleWriter)
            }, new List <LogLevel> {
                LogLevel.Message
            });

            jobLogger.Configure(loggerConfiguration);

            var message = new Message("This is the message");

            jobLogger.Log(message);

            AssertConsoleContent(mockedConsoleWriter.MockedMessages, new List <ILogMessage> {
                message
            });

            Assert.AreEqual(1, mockedConsoleWriter.MockedMessages.Count);
        }