public void ErrorHandlingTest() { LogManager.ThrowExceptions = false; 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.Null(exceptions[0]); Assert.Null(exceptions[1]); Assert.NotNull(exceptions2[0]); Assert.Equal("Some SMTP error.", exceptions2[0].Message); // 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("MyLogger1", mock1.Host); Assert.Equal(1, mock1.MessagesSent.Count); var msg1 = mock1.MessagesSent[0]; Assert.Equal("log message 1\nlog message 3\n", msg1.Body); var mock2 = mmt.CreatedMocks[1]; Assert.Equal("ERROR", mock2.Host); Assert.Equal(1, mock2.MessagesSent.Count); var msg2 = mock2.MessagesSent[0]; Assert.Equal("log message 2\n", msg2.Body); }
public void MailTarget_WithEmptyTo_ThrowsNLogRuntimeException() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "", Subject = "Hello from NLog", SmtpServer = "server1", SmtpPort = 27, Body = "${level} ${logger} ${message}", }; mmt.Initialize(null); var exceptions = new List <Exception>(); Assert.Throws <NLogRuntimeException>(() => mmt.WriteAsyncLogEvent(new LogEventInfo(LogLevel.Info, "MyLogger", "log message 1").WithContinuation(exceptions.Add))); }
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.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; Assert.Single(mock.MessagesSent); 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.Single(msg.To); 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("Info MyLogger log message 1", msg.Body); }
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.Single(mmt.CreatedMocks); var mock = mmt.CreatedMocks[0]; Assert.Single(mock.MessagesSent); 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 MailTarget_WithoutPriority_SendsMailWithNormalPriority() { var mmt = new MockMailTarget { From = "*****@*****.**", To = "*****@*****.**", Subject = "Hello from NLog", SmtpServer = "server1", }; 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 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 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.Single(mock1.MessagesSent); 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.Single(mock2.MessagesSent); var msg2 = mock2.MessagesSent[0]; Assert.Equal("*****@*****.**", msg2.To[0].Address); Assert.Equal("log message 2\n", msg2.Body); }
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 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 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 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 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 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 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 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 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 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 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 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 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 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_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 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 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); }