public void SimpleEmailTest() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", CC = "[email protected];[email protected]", Bcc = "[email protected];[email protected]", Subject = "Hello from NLog", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(1, mock.MessagesSent.Count); Assert.Equal("server1", mock.Host); Assert.Equal(27, mock.Port); Assert.False(mock.EnableSsl); Assert.Null(mock.Credentials); var msg = mock.MessagesSent[0]; Assert.Equal("Hello from NLog", msg.Subject); Assert.Equal("*****@*****.**", msg.From.Address); Assert.Equal(1, msg.To.Count); Assert.Equal("*****@*****.**", msg.To[0].Address); Assert.Equal(2, msg.CC.Count); Assert.Equal("*****@*****.**", msg.CC[0].Address); Assert.Equal("*****@*****.**", msg.CC[1].Address); Assert.Equal(2, msg.Bcc.Count); Assert.Equal("*****@*****.**", msg.Bcc[0].Address); Assert.Equal("*****@*****.**", msg.Bcc[1].Address); Assert.Equal(msg.Body, "Info MyLogger log message 1"); }
public void MailTarget_WithInvalidPriority_SendsMailWithNormalPriority() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "server1", Priority = "invalidPriority" }; var logFactory = new LogFactory().Setup().LoadConfiguration(cfg => { cfg.Configuration.AddRuleForAllLevels(mmt); }).LogFactory; logFactory.GetLogger("MyLogger").Info("log message 1"); var messageSent = mmt.CreatedMocks[0].MessagesSent[0]; Assert.Equal(MailPriority.Normal, messageSent.Priority); }
public void MailTarget_UseSystemNetMailSettings_True_WithVirtualPath() { var inConfigVal = @"~/App_Data/Mail"; var mmt = new MockMailTarget(inConfigVal) { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", Body = "${level} ${logger} ${message}", UseSystemNetMailSettings = false, PickupDirectoryLocation = inConfigVal, DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory }; mmt.ConfigureMailClient(); Assert.NotEqual(inConfigVal, mmt.SmtpClientPickUpDirectory); var separator = Path.DirectorySeparatorChar; Assert.Contains(string.Format("{0}App_Data{0}Mail", separator), mmt.SmtpClientPickUpDirectory); }
public void MailTarget_WithValidToAndEmptyBcc_SendsMail() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Bcc = "", Subject = "Hello from NLog", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}", }; mmt.Initialize(null); var exceptions = new List <Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Single(mmt.CreatedMocks); Assert.Single(mmt.CreatedMocks[0].MessagesSent); }
public void MailTarget_WithEmptySmtpServer_ThrowsNLogRuntimeException() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; mmt.Initialize(null); var exceptions = new List <Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.NotNull(exceptions[0]); Assert.IsType <NLogRuntimeException>(exceptions[0]); }
public void NtlmEmailTest() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpAuthentication = SmtpAuthenticationMode.Ntlm, }; var logFactory = new LogFactory().Setup().LoadConfiguration(cfg => { cfg.Configuration.AddRuleForAllLevels(mmt); }).LogFactory; logFactory.GetLogger("MyLogger").Info("log message 1"); Assert.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; Assert.Equal(CredentialCache.DefaultNetworkCredentials, mock.Credentials); }
public void NtlmEmailTest() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpAuthentication = SmtpAuthenticationMode.Ntlm, }; mmt.Initialize(null); var exceptions = new List <Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; Assert.Equal(CredentialCache.DefaultNetworkCredentials, mock.Credentials); }
public void CustomHeaderAndFooter() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", AddNewLines = true, Layout = "${message}", Header = "First event: ${logger}", Footer = "Last event: ${logger}", }; var logFactory = new LogFactory().Setup().LoadConfiguration(cfg => { cfg.Configuration.AddRuleForAllLevels(mmt); }).LogFactory; var exceptions = new List <Exception>(); mmt.WriteAsyncLogEvents( new LogEventInfo(LogLevel.Info, "MyLogger1", "log message 1").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Debug, "MyLogger2", "log message 2").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Error, "MyLogger3", "log message 3").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; Assert.Single(mock.MessagesSent); var msg = mock.MessagesSent[0]; string expectedBody = "First event: MyLogger1\nlog message 1\nlog message 2\nlog message 3\nLast event: MyLogger3\n"; Assert.Equal(expectedBody, msg.Body); }
public void BasicAuthEmailTest() { try { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpAuthentication = SmtpAuthenticationMode.Basic, SmtpUserName = "******", SmtpPassword = "******", }; mmt.Initialize(null); var exceptions = new List <Exception>(); MappedDiagnosticsContext.Set("username", "u1"); MappedDiagnosticsContext.Set("password", "p1"); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; var credential = mock.Credentials as NetworkCredential; Assert.NotNull(credential); Assert.Equal("u1", credential.UserName); Assert.Equal("p1", credential.Password); Assert.Equal(string.Empty, credential.Domain); } finally { MappedDiagnosticsContext.Clear(); } }
public void MailTarget_WithEmptySmtpServer_ThrowsNLogRuntimeException() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.NotNull(exceptions[0]); Assert.IsType<NLogRuntimeException>(exceptions[0]); }
public void MailTargetInitialize_WithoutSpecifiedSmtpServer_ThrowsConfigException() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; Assert.Throws<NLogConfigurationException>(() => mmt.Initialize(null)); }
public void MailTargetInitialize_WithoutSpecifiedSmtpServer_should_not_ThrowsConfigException() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpPort = 27, Body = "${level} ${logger} ${message}", UseSystemNetMailSettings = true }; mmt.Initialize(null); }
public void MailTarget_WithValidToAndEmptyBcc_SendsMail() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Bcc = "", Subject = "Hello from NLog", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}", }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); Assert.Equal(1, mmt.CreatedMocks[0].MessagesSent.Count); }
public void MailTarget_UseSystemNetMailSettings_True() { var inConfigVal = @"C:\config"; var mmt = new MockMailTarget(inConfigVal) { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", Body = "${level} ${logger} ${message}", UseSystemNetMailSettings = true }; mmt.ConfigureMailClient(); Assert.Equal(mmt.SmtpClientPickUpDirectory, inConfigVal); }
public void MailTarget_WithInvalidPriority_SendsMailWithNormalPriority() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "server1", Priority = "invalidPriority" }; mmt.Initialize(null); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(_ => { })); var messageSent = mmt.CreatedMocks[0].MessagesSent[0]; Assert.Equal(MailPriority.Normal, messageSent.Priority); }
public void PerMessageAddress() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "${logger}@foo.com", Body = "${message}", SmtpServer = "server1.mydomain.com", AddNewLines = true, }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvents( new LogEventInfo(LogLevel.Info, "MyLogger1", "log message 1").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Debug, "MyLogger2", "log message 2").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Error, "MyLogger1", "log message 3").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); // 2 messages are sent, one using MyLogger1.mydomain.com, another using MyLogger2.mydomain.com Assert.Equal(2, mmt.CreatedMocks.Count); var mock1 = mmt.CreatedMocks[0]; Assert.Equal(1, mock1.MessagesSent.Count); var msg1 = mock1.MessagesSent[0]; Assert.Equal("*****@*****.**", msg1.To[0].Address); Assert.Equal("log message 1\nlog message 3\n", msg1.Body); var mock2 = mmt.CreatedMocks[1]; Assert.Equal(1, mock2.MessagesSent.Count); var msg2 = mock2.MessagesSent[0]; Assert.Equal("*****@*****.**", msg2.To[0].Address); Assert.Equal("log message 2\n", msg2.Body); }
public void MailTargetInitialize_WithoutSpecifiedFrom_ThrowsConfigException() { var mmt = new MockMailTarget { To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}", UseSystemNetMailSettings = false }; Assert.Throws<NLogConfigurationException>(() => mmt.Initialize(null)); }
public void MailTarget_UseSystemNetMailSettings_False_Override_ThrowsNLogRuntimeException_if_DeliveryMethodNotSpecified() { var inConfigVal = @"C:\config"; var mmt = new MockMailTarget(inConfigVal) { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpPort = 27, Body = "${level} ${logger} ${message}", PickupDirectoryLocation = @"C:\TEMP", UseSystemNetMailSettings = false }; Assert.Throws<NLogRuntimeException>(() => mmt.ConfigureMailClient()); }
public void CsvLayoutTest() { var layout = new CsvLayout() { Delimiter = CsvColumnDelimiterMode.Semicolon, WithHeader = true, Columns = { new CsvColumn("name", "${logger}"), new CsvColumn("level", "${level}"), new CsvColumn("message", "${message}"), } }; var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", AddNewLines = true, Layout = layout, }; layout.Initialize(null); mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvents( new LogEventInfo(LogLevel.Info, "MyLogger1", "log message 1").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Debug, "MyLogger2", "log message 2").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Error, "MyLogger3", "log message 3").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(1, mock.MessagesSent.Count); var msg = mock.MessagesSent[0]; string expectedBody = "name;level;message\nMyLogger1;Info;log message 1\nMyLogger2;Debug;log message 2\nMyLogger3;Error;log message 3\n"; Assert.Equal(expectedBody, msg.Body); }
public void NtlmEmailTest() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpAuthentication = SmtpAuthenticationMode.Ntlm, }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(CredentialCache.DefaultNetworkCredentials, mock.Credentials); }
public void ErrorHandlingTest() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "${logger}", Body = "${message}", AddNewLines = true, }; mmt.Initialize(null); var exceptions = new List<Exception>(); var exceptions2 = new List<Exception>(); mmt.WriteAsyncLogEvents( new LogEventInfo(LogLevel.Info, "MyLogger1", "log message 1").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Debug, "ERROR", "log message 2").WithContinuation(exceptions2.Add), new LogEventInfo(LogLevel.Error, "MyLogger1", "log message 3").WithContinuation(exceptions.Add)); Assert.IsNull(exceptions[0], Convert.ToString(exceptions[0])); Assert.IsNull(exceptions[1], Convert.ToString(exceptions[1])); Assert.IsNotNull(exceptions2[0]); Assert.AreEqual("Some SMTP error.", exceptions2[0].Message); // 2 messages are sent, one using MyLogger1.mydomain.com, another using MyLogger2.mydomain.com Assert.AreEqual(2, mmt.CreatedMocks.Count); var mock1 = mmt.CreatedMocks[0]; Assert.AreEqual("MyLogger1", mock1.Host); Assert.AreEqual(1, mock1.MessagesSent.Count); var msg1 = mock1.MessagesSent[0]; Assert.AreEqual("log message 1\nlog message 3\n", msg1.Body); var mock2 = mmt.CreatedMocks[1]; Assert.AreEqual("ERROR", mock2.Host); Assert.AreEqual(1, mock2.MessagesSent.Count); var msg2 = mock2.MessagesSent[0]; Assert.AreEqual("log message 2\n", msg2.Body); }
public void MailTarget_WithoutSubject_SendsMessageWithDefaultSubject() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(1, mock.MessagesSent.Count); Assert.Equal(string.Format("Message from NLog on {0}", Environment.MachineName), mock.MessagesSent[0].Subject); }
public void CustomHeaderAndFooter() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", AddNewLines = true, Layout = "${message}", Header = "First event: ${logger}", Footer = "Last event: ${logger}", }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvents( new LogEventInfo(LogLevel.Info, "MyLogger1", "log message 1").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Debug, "MyLogger2", "log message 2").WithContinuation(exceptions.Add), new LogEventInfo(LogLevel.Error, "MyLogger3", "log message 3").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(1, mock.MessagesSent.Count); var msg = mock.MessagesSent[0]; string expectedBody = "First event: MyLogger1\nlog message 1\nlog message 2\nlog message 3\nLast event: MyLogger3\n"; Assert.Equal(expectedBody, msg.Body); }
public void MailTarget_WithNewlineInSubject_SendsMail() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", CC = "[email protected];[email protected]", Bcc = "[email protected];[email protected]", Subject = "Hello from NLog\n", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}" }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; Assert.Equal(1, mock.MessagesSent.Count); var msg = mock.MessagesSent[0]; }
public void NoReplaceNewlinesWithBreakInHtmlMail() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "server1", Body = "${level}${newline}${logger}${newline}${message}", Html = true, ReplaceNewlineWithBrTagInHtml = false }; mmt.Initialize(null); var exceptions = new List<Exception>(); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); var messageSent = mmt.CreatedMocks[0].MessagesSent[0]; Assert.True(messageSent.IsBodyHtml); var lines = messageSent.Body.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); Assert.True(lines.Length == 3); }
public void BasicAuthEmailTest() { try { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", SmtpServer = "server1", SmtpAuthentication = SmtpAuthenticationMode.Basic, SmtpUserName = "******", SmtpPassword = "******", }; mmt.Initialize(null); var exceptions = new List<Exception>(); MappedDiagnosticsContext.Set("username", "u1"); MappedDiagnosticsContext.Set("password", "p1"); mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add)); Assert.Null(exceptions[0]); Assert.Equal(1, mmt.CreatedMocks.Count); var mock = mmt.CreatedMocks[0]; var credential = mock.Credentials as NetworkCredential; Assert.NotNull(credential); Assert.Equal("u1", credential.UserName); Assert.Equal("p1", credential.Password); Assert.Equal(string.Empty, credential.Domain); } finally { MappedDiagnosticsContext.Clear(); } }
public void MailTarget_UseSystemNetMailSettings_False_Override_DeliveryMethod_SpecifiedDeliveryMethod() { var inConfigVal = @"C:\config"; var mmt = new MockMailTarget(inConfigVal) { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpPort = 27, Body = "${level} ${logger} ${message}", PickupDirectoryLocation = @"C:\TEMP", UseSystemNetMailSettings = false, DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory }; mmt.ConfigureMailClient(); Assert.NotEqual(mmt.PickupDirectoryLocation, inConfigVal); }