public void Process_SaidHeloAlready_Allowed() { Mocks mocks = new Mocks(); EhloVerb verb = new EhloVerb(); verb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foo.blah")); verb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foo.blah")); mocks.VerifyWriteResponse(StandardSmtpResponseCode.OK); }
public async Task Process_SaidHeloAlready_Allowed() { TestMocks mocks = new TestMocks(); EhloVerb verb = new EhloVerb(); await verb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foo.blah")).ConfigureAwait(false); await verb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foo.blah")).ConfigureAwait(false); mocks.VerifyWriteResponseAsync(StandardSmtpResponseCode.OK); }
public async Task Process_RespondsWithExtensionKeywords() { TestMocks mocks = new TestMocks(); Mock <IExtensionProcessor> mockExtensionProcessor1 = new Mock <IExtensionProcessor>(); mockExtensionProcessor1.Setup(ep => ep.GetEHLOKeywords()).ReturnsAsync(new[] { "EXTN1" }); Mock <IExtensionProcessor> mockExtensionProcessor2 = new Mock <IExtensionProcessor>(); mockExtensionProcessor2.Setup(ep => ep.GetEHLOKeywords()).ReturnsAsync(new[] { "EXTN2A", "EXTN2B" }); mocks.Connection.SetupGet(c => c.ExtensionProcessors).Returns(new[] { mockExtensionProcessor1.Object, mockExtensionProcessor2.Object }); EhloVerb ehloVerb = new EhloVerb(); await ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")).ConfigureAwait(false); mocks.Connection.Verify(c => c.WriteResponse(It.Is <SmtpResponse>(r => r.Message.Contains("EXTN1") && r.Message.Contains("EXTN2A") && r.Message.Contains("EXTN2B") ))); }
public void Process_RespondsWithExtensionKeywords() { Mocks mocks = new Mocks(); Mock <IExtensionProcessor> mockExtensionProcessor1 = new Mock <IExtensionProcessor>(); mockExtensionProcessor1.SetupGet(ep => ep.EHLOKeywords).Returns(new[] { "EXTN1" }); Mock <IExtensionProcessor> mockExtensionProcessor2 = new Mock <IExtensionProcessor>(); mockExtensionProcessor2.SetupGet(ep => ep.EHLOKeywords).Returns(new[] { "EXTN2A", "EXTN2B" }); mocks.Connection.SetupGet(c => c.ExtensionProcessors).Returns(new[] { mockExtensionProcessor1.Object, mockExtensionProcessor2.Object }); EhloVerb ehloVerb = new EhloVerb(); ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")); mocks.Connection.Verify(c => c.WriteResponse(It.Is <SmtpResponse>(r => r.Message.Contains("EXTN1") && r.Message.Contains("EXTN2A") && r.Message.Contains("EXTN2B") ))); }
public async Task Process_RecordsClientName() { TestMocks mocks = new TestMocks(); EhloVerb ehloVerb = new EhloVerb(); await ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")).ConfigureAwait(false); mocks.Session.VerifySet(s => s.ClientName = "foobar"); }
public void Process_RecordsClientName() { Mocks mocks = new Mocks(); EhloVerb ehloVerb = new EhloVerb(); ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")); mocks.Session.VerifySet(s => s.ClientName = "foobar"); }
public async Task Process_NoArguments_Accepted() { TestMocks mocks = new TestMocks(); EhloVerb ehloVerb = new EhloVerb(); await ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO")).ConfigureAwait(false); mocks.VerifyWriteResponse(StandardSmtpResponseCode.OK); mocks.Session.VerifySet(s => s.ClientName = ""); }
public void Process_NoArguments_Accepted() { Mocks mocks = new Mocks(); EhloVerb ehloVerb = new EhloVerb(); ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO")); mocks.VerifyWriteResponse(StandardSmtpResponseCode.OK); mocks.Session.VerifySet(s => s.ClientName = ""); }
public async Task Process_RespondsWith250() { TestMocks mocks = new TestMocks(); Mock <IExtensionProcessor> mockExtensionProcessor1 = new Mock <IExtensionProcessor>(); mockExtensionProcessor1.Setup(ep => ep.GetEHLOKeywords()).ReturnsAsync(new[] { "EXTN1" }); Mock <IExtensionProcessor> mockExtensionProcessor2 = new Mock <IExtensionProcessor>(); mockExtensionProcessor2.Setup(ep => ep.GetEHLOKeywords()).ReturnsAsync(new[] { "EXTN2A", "EXTN2B" }); mocks.Connection.SetupGet(c => c.ExtensionProcessors).Returns(new[] { mockExtensionProcessor1.Object, mockExtensionProcessor2.Object }); EhloVerb ehloVerb = new EhloVerb(); await ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")).ConfigureAwait(false); mocks.VerifyWriteResponse(StandardSmtpResponseCode.OK); }
public void Process_RespondsWith250() { Mocks mocks = new Mocks(); Mock <IExtensionProcessor> mockExtensionProcessor1 = new Mock <IExtensionProcessor>(); mockExtensionProcessor1.SetupGet(ep => ep.EHLOKeywords).Returns(new[] { "EXTN1" }); Mock <IExtensionProcessor> mockExtensionProcessor2 = new Mock <IExtensionProcessor>(); mockExtensionProcessor2.SetupGet(ep => ep.EHLOKeywords).Returns(new[] { "EXTN2A", "EXTN2B" }); mocks.Connection.SetupGet(c => c.ExtensionProcessors).Returns(new[] { mockExtensionProcessor1.Object, mockExtensionProcessor2.Object }); EhloVerb ehloVerb = new EhloVerb(); ehloVerb.Process(mocks.Connection.Object, new SmtpCommand("EHLO foobar")); mocks.VerifyWriteResponse(StandardSmtpResponseCode.OK); }