Exemple #1
0
        public void TestExecuteBadSequenceError()
        {
            using (ShimsContext.Create())
            {
                AddTransactionProperty("Authenticated", true);

                var handler  = new AUTHHandler(GetDefaulLoader());
                var response = handler.DoExecute(Transaction, "Test =");

                Assert.Equal(SMTPStatusCode.BadSequence, response.Code);
            }
        }
Exemple #2
0
        public void TestExecuteNotImplementedError()
        {
            using (ShimsContext.Create())
            {
                AddTransactionProperty("Authenticated", false);

                var handler  = new AUTHHandler(GetDefaulLoader());
                var response = handler.DoExecute(Transaction, "NonExisting");

                Assert.Equal(SMTPStatusCode.ParamNotImplemented, response.Code);
            }
        }
Exemple #3
0
        public void TestExecutSuccess(string parameters, string expectedDecoded)
        {
            using (ShimsContext.Create())
            {
                AddTransactionProperty("Authenticated", false);
                AddCoreListProperty("EHLOLines", new List <Func <SMTPTransaction, string> >());

                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 loader = new StubIAuthMethodLoader
                {
                    GetModules =
                        () => new List <Tuple <string, IAuthMethod> > {
                        new Tuple <string, IAuthMethod>("TEST", method)
                    }
                };

                var handler = new AUTHHandler(loader);
                handler.Initialize(Core);
                var response = handler.DoExecute(Transaction, parameters);

                Assert.Same(method, actualAuthMethod);
                Assert.Same(expectedResponse, response);
                Assert.Equal(Transaction, actualTransaction);
                Assert.Equal(expectedDecoded, decodedReponse);
            }
        }
Exemple #4
0
        public void TestExecuteSyntaxError(string parameters)
        {
            using (ShimsContext.Create())
            {
                AddTransactionProperty("Authenticated", false);
                AddCoreListProperty("EHLOLines", new List <Func <SMTPTransaction, string> >());

                var method = new StubIAuthMethod();
                var loader = new StubIAuthMethodLoader
                {
                    GetModules =
                        () => new List <Tuple <string, IAuthMethod> > {
                        new Tuple <string, IAuthMethod>("TEST", method)
                    }
                };

                var handler = new AUTHHandler(loader);
                handler.Initialize(Core);
                var response = handler.DoExecute(Transaction, parameters);

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