public void Given_A_Valid_Command_Should_Invoke_Send_Method_Once() { // Arrange var command = new SendContactUsEmailCommand { Name = "bottom", Email = "*****@*****.**", Message = "Flash the loo" }; _emailService.Send(Arg.Any <EmailMessage>()); // Act _sut.Handle(command, CancellationToken.None); // Assert _emailService.Received(1).Send(Arg.Any <EmailMessage>()); }
public void Given_A_Valid_Command_Should_Send_Email_Successfully() { // Arrange var command = new SendContactUsEmailCommand { Name = "bottom", Email = "*****@*****.**", Message = "Flash the loo" }; _emailService.Send(Arg.Any <EmailMessage>()); // Act Action act = () => _sut.Handle(command, CancellationToken.None); // Assert act.Should().NotThrow(); }
Given_A_Valid_Command_If_Connection_To_EmailServer_Fails_Should_Handle_ServiceNotConnected_Exception_And_Return_Errors() { // Arrange var command = new SendContactUsEmailCommand { Name = "bottom", Email = "*****@*****.**", Message = "Flash the loo" }; _emailConfiguration.SmtpUsername.Returns("*****@*****.**"); _emailService.When(x => _emailService.Send(Arg.Any <EmailMessage>())) .Do(x => throw new ServiceNotConnectedException()); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert result.Errors.Should().NotBeEmpty(); }