Ejemplo n.º 1
0
        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;
        }