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); } }
public void TestDataHandlerError(string line) { using (ShimsContext.Create()) { var response = AUTHHandler.DataHandler(Transaction, line, new StubIAuthMethod()); Assert.Equal(SMTPStatusCode.SyntaxError, response.Code); } }
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); } }