Esempio n. 1
0
        public void CanChangeTraceLevel()
        {
            var loggerResult = new LoggerEventArgs();
            var testClass = new MockLoggingClass();
            var logger = testClass.GetLogger();

            testClass.LoggerEvent += (sender, args) =>
            {
                loggerResult = args;
            };

            const string expectedMessage = "- Hello World";

            // Default priority for LogVerbose is low - we'll change to high
            testClass.LogMessage(logger.LogVerbose,
                "Hello {0}", "World", Priority.High);
            Assert.AreEqual(Category.Debug, loggerResult.Category);
            Assert.AreEqual(Priority.High, loggerResult.Priority);
            Assert.AreEqual(expectedMessage, loggerResult.Message);
            Assert.IsFalse(loggerResult.IsLoggingPermitted);

            // Set trace level to verbose
            var appSettings = testClass.GetAppSettings();
            appSettings.TraceLevel = (int)GwnTraceLevel.Verbose;

            testClass.LogMessage(logger.LogVerbose, expectedMessage);
            Assert.IsTrue(loggerResult.IsLoggingPermitted);

            testClass.LogMessage(logger.LogInfo, expectedMessage);
            Assert.IsTrue(loggerResult.IsLoggingPermitted);

            testClass.LogMessage(logger.LogWarning, expectedMessage);
            Assert.IsTrue(loggerResult.IsLoggingPermitted);

            testClass.LogMessage(logger.LogError, expectedMessage);
            Assert.IsTrue(loggerResult.IsLoggingPermitted);

            // Set trace level to Info (level 3)
            appSettings.TraceLevel = (int)GwnTraceLevel.Info;

            // Verbose should be false (level 4)
            testClass.LogMessage(logger.LogVerbose, expectedMessage);
            Assert.IsFalse(loggerResult.IsLoggingPermitted);

            // Info should be true (level 3)
            testClass.LogMessage(logger.LogInfo, expectedMessage);
            Assert.IsTrue(loggerResult.IsLoggingPermitted);
        }