Пример #1
0
        public void TestOutputContainsSentDate()
        {
            SilentErrorHandler sh       = new SilentErrorHandler();
            AppenderSmtpPickup appender = CreateSmtpPickupDirAppender(sh);
            ILogger            log      = CreateLogger(appender);

            log.Log(GetType(), Level.Info, "This is a message", null);
            log.Log(GetType(), Level.Info, "This is a message 2", null);
            DestroyLogger();

            Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length);
            string[]     fileContent     = File.ReadAllLines((Directory.GetFiles(_testPickupDir)[0]));
            bool         hasDateHeader   = false;
            const string dateHeaderStart = "Date: ";

            foreach (string line in fileContent)
            {
                if (line.StartsWith(dateHeaderStart))
                {
                    string   datePart = line.Substring(dateHeaderStart.Length);
                    DateTime date     = DateTime.ParseExact(datePart, "r", System.Globalization.CultureInfo.InvariantCulture);
                    double   diff     = Math.Abs((DateTime.UtcNow - date).TotalMilliseconds);
                    Assert.LessOrEqual(diff, 1000, "Times should be equal, allowing a diff of one second to make test robust");
                    hasDateHeader = true;
                }
            }
            Assert.IsTrue(hasDateHeader, "Output must contains a date header");

            Assert.AreEqual("", sh.Message, "Unexpected error message");
        }
Пример #2
0
        /// <summary>
        /// Create an appender to use for the logger
        /// </summary>
        /// <param name="handler">The error handler to use.</param>
        /// <returns></returns>
        private AppenderSmtpPickup CreateSmtpPickupDirAppender(IErrorHandler handler)
        {
            AppenderSmtpPickup appender = new AppenderSmtpPickup();

            appender.PickupDir    = _testPickupDir;
            appender.ErrorHandler = handler;
            return(appender);
        }
Пример #3
0
        public void TestDefaultFileNameIsAGuid()
        {
            SilentErrorHandler sh       = new SilentErrorHandler();
            AppenderSmtpPickup appender = CreateSmtpPickupDirAppender(sh);
            ILogger            log      = CreateLogger(appender);

            log.Log(GetType(), Level.Info, "This is a message", null);
            log.Log(GetType(), Level.Info, "This is a message 2", null);
            DestroyLogger();

            Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length);
            FileInfo fileInfo = new FileInfo(Directory.GetFiles(_testPickupDir)[0]);

            Assert.IsEmpty(fileInfo.Extension);
            Assert.DoesNotThrow(delegate { new Guid(fileInfo.Name); }); // Assert that filename is a guid

            Assert.AreEqual("", sh.Message, "Unexpected error message");
        }
Пример #4
0
        /// <summary>
        /// Creates a logger hierarchy, configures a SMTP pickup dir appender and returns an ILogger
        /// </summary>
        /// <param name="appender">The appender to use</param>
        /// <returns>A configured ILogger</returns>
        private ILogger CreateLogger(AppenderSmtpPickup appender)
        {
            ILoggerController h = LogManager.CreateController("TestRepository");

            LayoutPattern layout = new LayoutPattern();

            layout.Pattern = "%m%n";
            layout.Activate();

            appender.Layout = layout;
            appender.Activate();

            h.Root.AddAppender(appender);
            h.Initialize();

            ILogger log = h.Get("Logger");

            return(log);
        }
Пример #5
0
        public void TestConfigurableFileExtension()
        {
            const string       fileExtension = "eml";
            SilentErrorHandler sh            = new SilentErrorHandler();
            AppenderSmtpPickup appender      = CreateSmtpPickupDirAppender(sh);

            appender.FileExtension = fileExtension;
            ILogger log = CreateLogger(appender);

            log.Log(GetType(), Level.Info, "This is a message", null);
            log.Log(GetType(), Level.Info, "This is a message 2", null);
            DestroyLogger();

            Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length);
            FileInfo fileInfo = new FileInfo(Directory.GetFiles(_testPickupDir)[0]);

            Assert.AreEqual("." + fileExtension, fileInfo.Extension);
            Assert.DoesNotThrow(delegate { new Guid(fileInfo.Name.Substring(0, fileInfo.Name.Length - fileInfo.Extension.Length)); }); // Assert that filename before extension is a guid

            Assert.AreEqual("", sh.Message, "Unexpected error message");
        }