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"); }
/// <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); }
/// <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(); }
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"); }
/// <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); }
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"); }