Exemple #1
0
        public void TestDataHandler(string line)
        {
            using (ShimsContext.Create())
            {
                SMTPTransaction actualTransaction = null;
                string          decodedReponse    = null;
                IAuthMethod     actualAuthMethod  = null;
                var             expectedResponse  = new SMTPResponse(SMTPStatusCode.Okay);

                ShimAUTHHandler.HandleResponseSMTPTransactionStringIAuthMethod = (transaction, data, authMethod) =>
                {
                    actualTransaction = transaction;
                    decodedReponse    = data;
                    actualAuthMethod  = authMethod;

                    return(expectedResponse);
                };

                var method  = new StubIAuthMethod();
                var encoded = Convert.ToBase64String(Encoding.ASCII.GetBytes(line));

                var response = AUTHHandler.DataHandler(Transaction, encoded, method);

                Assert.Same(method, actualAuthMethod);
                Assert.Same(expectedResponse, response);
                Assert.Equal(Transaction, actualTransaction);
                Assert.Equal(line, decodedReponse);
            }
        }
Exemple #2
0
        public void TestDataHandlerError(string line)
        {
            using (ShimsContext.Create())
            {
                var response = AUTHHandler.DataHandler(Transaction, line, new StubIAuthMethod());

                Assert.Equal(SMTPStatusCode.SyntaxError, response.Code);
            }
        }
Exemple #3
0
        public void TestDataHandlerAbort()
        {
            using (ShimsContext.Create())
            {
                var             aborted           = false;
                SMTPTransaction actualTransaction = null;

                var authMethod = new StubIAuthMethod
                {
                    AbortSMTPTransaction = transaction =>
                    {
                        actualTransaction = transaction;
                        aborted           = true;
                    }
                };

                var response = AUTHHandler.DataHandler(Transaction, "*", authMethod);

                Assert.Equal(SMTPStatusCode.ParamError, response.Code);
                Assert.True(aborted);
                Assert.Equal(Transaction, actualTransaction);
            }
        }