public void SmtpServer_should_be_able_to_receive_mail_from_SmtpClient() { var mockEmailValidator = new Mock<IEmailValidator>(); mockEmailValidator.Setup(x => x.Validate(It.IsAny<string>())).Returns(true); var testPort = TestHelpers.GetTestPort(); var mailDataCollector = new TestMailDataCollector(); using (var smtpServer = new SmtpServer()) { var responderFactory = new SmtpResponderFactory(smtpServer.Configuration, mockEmailValidator.Object) { DataResponder = mailDataCollector }; smtpServer.DefaultResponderFactory = responderFactory; smtpServer.BindAndListenTo(IPAddress.Loopback, testPort); var sendMailTask = Task.Factory.StartNew(() => SendMail(testPort, "*****@*****.**", "*****@*****.**", "subject", "body"), TaskCreationOptions.LongRunning); Assert.True(sendMailTask.Wait(3000)); mockEmailValidator.Verify(x => x.Validate("*****@*****.**")); mockEmailValidator.Verify(x => x.Validate("*****@*****.**")); var mailData = mailDataCollector.MailData; Assert.Contains("*****@*****.**", mailData); Assert.Contains("*****@*****.**", mailData); Assert.Contains("subject", mailData); Assert.Contains("body", mailData); } }
private static SmtpSessionInfoResponder CreateParseResponderWithMockedIRespondToSmtpIdentification(SmtpResponse testResponse) { var respondToSmtpIdentification = MockIRespondToSmtpIdentificationToReturnResponse(testResponse); var factory = new SmtpResponderFactory(new SmtpServerConfiguration()) { IdentificationResponder = respondToSmtpIdentification }; var parseResponder = DefaultResponder(factory); return parseResponder; }
private static SmtpSessionInfoResponder CreateParseResponderWithMockedIRespondToVerify(SmtpResponse testResponse) { var respondToVerify = MockIRespondToVerifyToReturnResponse(testResponse); var factory = new SmtpResponderFactory(new SmtpServerConfiguration()) { VerifyResponder = respondToVerify }; var parseResponder = MailFromIdentifiedParseResponder(factory); return parseResponder; }
private static SmtpSessionInfoResponder CreateParseResponderWithMockedIRespondToSmtpData(SmtpResponse testResponse) { var respondToSmtpData = MockIRespondToSmtpDataToReturnResponse(testResponse); var factory = new SmtpResponderFactory(new SmtpServerConfiguration()) { DataResponder = respondToSmtpData }; var parseResponder = RecipientMailFromIdentifiedParseResponder(factory); return parseResponder; }