Esempio n. 1
0
        public void TestOutputContainsSentDate()
        {
            SilentErrorHandler    sh       = new SilentErrorHandler();
            SmtpPickupDirAppender 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))
                {
                    var datePart = line.Substring(dateHeaderStart.Length);
                    var date     = DateTime.ParseExact(datePart, "r", System.Globalization.CultureInfo.InvariantCulture);
                    var 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");
        }
Esempio n. 2
0
        /// <summary>
        /// Create an appender to use for the logger
        /// </summary>
        /// <param name="handler">The error handler to use.</param>
        /// <returns></returns>
        private SmtpPickupDirAppender CreateSmtpPickupDirAppender(IErrorHandler handler)
        {
            SmtpPickupDirAppender appender = new SmtpPickupDirAppender();

            appender.PickupDir    = _testPickupDir;
            appender.ErrorHandler = handler;
            return(appender);
        }
Esempio n. 3
0
        /// <summary>
        /// Create an appender to use for the logger
        /// </summary>
        /// <param name="handler">The error handler to use.</param>
        /// <returns></returns>
        private SmtpPickupDirAppender CreateSmtpPickupDirAppender(IErrorHandler handler)
        {
            SmtpPickupDirAppender appender = new SmtpPickupDirAppender
            {
                PickupDir    = _testPickupDir,
                ErrorHandler = handler
            };

            return(appender);
        }
        public void SetUp()
        {
            XmlDocument xmlDoc      = new XmlDocument();
            XmlElement  log4NetNode = xmlDoc.CreateElement(Log4NetXmlConstants.Log4Net);

            IElementConfiguration configuration = Substitute.For <IElementConfiguration>();

            configuration.ConfigXml.Returns(xmlDoc);
            configuration.Log4NetNode.Returns(log4NetNode);

            mSut = new SmtpPickupDirAppender(configuration);
            mSut.Initialize();
        }
Esempio n. 5
0
        public void TestDefaultFileNameIsAGuid()
        {
            SilentErrorHandler    sh       = new SilentErrorHandler();
            SmtpPickupDirAppender 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);
            var 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");
        }
Esempio n. 6
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(SmtpPickupDirAppender appender)
        {
            Repository.Hierarchy.Hierarchy h = (Repository.Hierarchy.Hierarchy)LogManager.CreateRepository("TestRepository");

            PatternLayout layout = new PatternLayout();

            layout.ConversionPattern = "%m%n";
            layout.ActivateOptions();

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

            h.Root.AddAppender(appender);
            h.Configured = true;

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

            return(log);
        }
Esempio n. 7
0
        public void TestConfigurableFileExtension()
        {
            const string          fileExtension = "eml";
            SilentErrorHandler    sh            = new SilentErrorHandler();
            SmtpPickupDirAppender 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);
            var 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");
        }