Esempio n. 1
0
        public void TestDataHandler()
        {
            var expectedSender     = new MailPath("tester", "test.de");
            var expectedRecipients = new List <MailPath> {
                new MailPath("tester", "fubar.de")
            };
            var expectedBody = "Body";

            AddTransactionProperty("ReversePath", () => expectedSender);
            AddTransactionListProperty("ForwardPath", () => expectedRecipients);

            var reset = false;

            Transaction.Reset = () => { reset = true; };

            MailPath        actualSender     = null;
            List <MailPath> actualRecipients = null;
            string          actualBody       = null;

            Core.TriggerNewMessageSMTPTransactionMailPathMailPathArrayString =
                (transaction, sender, recipients, body) =>
            {
                actualSender     = sender;
                actualRecipients = recipients.ToList();
                actualBody       = body;
            };

            var response = DATAHandler.DataHandler(Transaction, expectedBody);

            Assert.Equal(SMTPStatusCode.Okay, response.Code);
            Assert.Equal(expectedSender, actualSender);
            Assert.Equal(expectedRecipients, actualRecipients);
            Assert.Equal(expectedBody, actualBody);
            Assert.True(reset);
        }
Esempio n. 2
0
        public void TestDataLineHandler(string line, string dataAfter, bool expectedResult, string dataBefore)
        {
            var sb           = new StringBuilder(dataBefore);
            var actualResult = DATAHandler.DataLineHandler(line, sb);

            Assert.Equal(expectedResult, actualResult);
            Assert.Equal(dataAfter, sb.ToString());
        }
Esempio n. 3
0
        public void TestSyntaxError()
        {
            var handler = new DATAHandler();

            handler.Initialize(Core);

            var response = handler.Execute(Transaction, "fubar");

            Assert.Equal(SMTPStatusCode.SyntaxError, response.Code);
        }
Esempio n. 4
0
        public void TestSuccess()
        {
            AddTransactionProperty("MailInProgress", true);
            AddTransactionListProperty("ForwardPath", new List <MailPath> {
                new MailPath("fubar", "fubar.de")
            });

            var dataMode              = false;
            var dataHandlerCalled     = false;
            var dataLineHandlerCalled = false;
            Func <string, StringBuilder, bool> dataLineHandler = null;
            Func <string, SMTPResponse>        dataHandler     = null;

            Transaction.StartDataModeFuncOfStringStringBuilderBooleanFuncOfStringSMTPResponse =
                (func, func1) =>
            {
                dataMode        = true;
                dataLineHandler = func;
                dataHandler     = func1;
            };

            ShimDATAHandler.DataHandlerSMTPTransactionString = (transaction, s) =>
            {
                dataHandlerCalled = true;
                return(null);
            };

            ShimDATAHandler.DataLineHandlerStringStringBuilder = (s, builder) =>
            {
                dataLineHandlerCalled = true;
                return(false);
            };

            var handler = new DATAHandler();

            handler.Initialize(Core);

            var response = handler.Execute(Transaction, "");

            if (dataHandler != null)
            {
                dataHandler(null);
            }
            if (dataLineHandler != null)
            {
                dataLineHandler(null, null);
            }

            Assert.Equal(SMTPStatusCode.StartMailInput, response.Code);
            Assert.True(dataMode);
            Assert.True(dataHandlerCalled);
            Assert.True(dataLineHandlerCalled);
        }
Esempio n. 5
0
        public void TestBadSequenceBecauseNoRecipients()
        {
            AddTransactionProperty("MailInProgress", true);
            AddTransactionListProperty("ForwardPath", new List <MailPath>());

            var handler = new DATAHandler();

            handler.Initialize(Core);

            var response = handler.Execute(Transaction, "");

            Assert.Equal(SMTPStatusCode.BadSequence, response.Code);
        }
Esempio n. 6
0
        public void TestBadSequenceBecauseNotMailing()
        {
            AddTransactionProperty("MailInProgress", false);
            AddTransactionListProperty("ForwardPath", new List <MailPath> {
                new MailPath("fubar", "fubar.de")
            });

            var handler = new DATAHandler();

            handler.Initialize(Core);

            var response = handler.Execute(Transaction, "");

            Assert.Equal(SMTPStatusCode.BadSequence, response.Code);
        }