public void TestSimpleSmtpNegotiation() { SmtpServer smtpserver=new SmtpServer("localhost"); EmailMessage emailMessage=GetTestHtmlAndTextMessage(); IMock mockSmtpProxy = new DynamicMock(typeof(ISmtpProxy)); mockSmtpProxy.ExpectAndReturn("Open", new SmtpResponse(220, "welcome to the mock object server"), null); mockSmtpProxy.ExpectAndReturn("Helo", new SmtpResponse(250, "helo"), Dns.GetHostName()); mockSmtpProxy.ExpectAndReturn("MailFrom", new SmtpResponse(250, "mail from"), emailMessage.FromAddress); foreach (EmailAddress rcpttoaddr in emailMessage.ToAddresses) { mockSmtpProxy.ExpectAndReturn("RcptTo", new SmtpResponse(250, "receipt to"), rcpttoaddr); } mockSmtpProxy.ExpectAndReturn("Data", new SmtpResponse(354, "data open"), null); mockSmtpProxy.ExpectAndReturn("WriteData", new SmtpResponse(250, "data"), emailMessage.ToDataString()); mockSmtpProxy.ExpectAndReturn("Quit", new SmtpResponse(221, "quit"), null); mockSmtpProxy.Expect("Close", null); ISmtpProxy smtpProxy= (ISmtpProxy) mockSmtpProxy.MockInstance; smtpserver.OverrideSmtpProxy(smtpProxy); emailMessage.Send(smtpserver); }
public void TestSimpleSmtpNegotiationWithAuth() { SmtpServer smtpserver=new SmtpServer("localhost"); smtpserver.SmtpAuthToken=new SmtpAuthToken("test", "test"); Base64Encoder encoder=Base64Encoder.GetInstance(); String base64Username=encoder.EncodeString(smtpserver.SmtpAuthToken.UserName, System.Text.Encoding.ASCII ); String base64Password=encoder.EncodeString(smtpserver.SmtpAuthToken.Password, System.Text.Encoding.ASCII ); EmailMessage emailMessage=GetTestHtmlAndTextMessage(); IMock mockSmtpProxy = new DynamicMock(typeof(ISmtpProxy)); mockSmtpProxy.ExpectAndReturn("Open", new SmtpResponse(220, "welcome to the mock object server"), null); EhloSmtpResponse ehloResponse=new EhloSmtpResponse(); ehloResponse.AddAvailableAuthType("login"); ehloResponse.Message="OK"; ehloResponse.ResponseCode=250; mockSmtpProxy.ExpectAndReturn("Ehlo",ehloResponse , Dns.GetHostName()); mockSmtpProxy.ExpectAndReturn("Auth", new SmtpResponse(334, encoder.EncodeString("Username:"******"login"); mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(334, encoder.EncodeString("Password:"******"SendString", new SmtpResponse(235, "Hooray, Authenticated"), base64Password); mockSmtpProxy.ExpectAndReturn("MailFrom", new SmtpResponse(250, "mail from"), emailMessage.FromAddress); foreach (EmailAddress rcpttoaddr in emailMessage.ToAddresses) { mockSmtpProxy.ExpectAndReturn("RcptTo", new SmtpResponse(250, "receipt to"), rcpttoaddr); } mockSmtpProxy.ExpectAndReturn("Data", new SmtpResponse(354, "data open"), null); mockSmtpProxy.ExpectAndReturn("WriteData", new SmtpResponse(250, "data"), emailMessage.ToDataString()); mockSmtpProxy.ExpectAndReturn("Quit", new SmtpResponse(221, "quit"), null); mockSmtpProxy.Expect("Close", null); ISmtpProxy smtpProxy= (ISmtpProxy) mockSmtpProxy.MockInstance; smtpserver.OverrideSmtpProxy(smtpProxy); try { emailMessage.Send(smtpserver); } catch (SmtpException ex) { log.Debug("Exception was "+ex.Message); log.Debug(ex.StackTrace); throw ex; } }
public void TestFailedSmtpNegotiationWithAuth() { SmtpServer smtpserver=new SmtpServer("localhost"); smtpserver.SmtpAuthToken=new SmtpAuthToken("test", "test"); Base64Encoder encoder=Base64Encoder.GetInstance(); String base64Username=encoder.EncodeString(smtpserver.SmtpAuthToken.UserName, System.Text.Encoding.ASCII ); String base64Password=encoder.EncodeString(smtpserver.SmtpAuthToken.Password, System.Text.Encoding.ASCII ); EmailMessage emailMessage=GetTestHtmlAndTextMessage(); IMock mockSmtpProxy = new DynamicMock(typeof(ISmtpProxy)); mockSmtpProxy.ExpectAndReturn("Open", new SmtpResponse(220, "welcome to the mock object server"), null); EhloSmtpResponse ehloResponse=new EhloSmtpResponse(); ehloResponse.AddAvailableAuthType("login"); ehloResponse.Message="OK"; ehloResponse.ResponseCode=250; mockSmtpProxy.ExpectAndReturn("Ehlo", ehloResponse , Dns.GetHostName()); mockSmtpProxy.ExpectAndReturn("Auth", new SmtpResponse(554, "Unrecognized auth type"), "login"); ISmtpProxy smtpProxy= (ISmtpProxy) mockSmtpProxy.MockInstance; smtpserver.OverrideSmtpProxy(smtpProxy); /* mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(554, "Invalid UserName"), base64Username); mockSmtpProxy.ExpectAndReturn("SendString", new SmtpResponse(554, "Invalid Password"), base64Password); mockSmtpProxy.ExpectAndReturn("MailFrom", new SmtpResponse(250, "mail from"), emailMessage.FromAddress); foreach (EmailAddress rcpttoaddr in emailMessage.ToAddresses) { mockSmtpProxy.ExpectAndReturn("RcptTo", new SmtpResponse(250, "receipt to"), rcpttoaddr); } mockSmtpProxy.ExpectAndReturn("Data", new SmtpResponse(354, "data open"), null); mockSmtpProxy.ExpectAndReturn("WriteData", new SmtpResponse(250, "data"), emailMessage.ToDataString()); mockSmtpProxy.ExpectAndReturn("Quit", new SmtpResponse(221, "quit"), null); mockSmtpProxy.Expect("Close", null); */ try { emailMessage.Send(smtpserver); Assert.Fail("The auth type is wrong"); } catch (SmtpException ex) { log.Debug("ERROR CODE IS "+554); Assert.AreEqual(554,ex.ErrorCode); } }