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); } }
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); } }
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); } }
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); } }