public async Task ShouldReturnPaymentErrorWhenFoobarBankClientThrows() { var cardPayment = new CardPaymentBuilder().Build(); _foobarBankClient.CreatePayment(cardPayment).Throws(new Exception()); var result = await _cardPaymentService.CreateCardPayment(cardPayment); await _paymentsRepository.Received(1).CreatePaymentRequest(cardPayment); Assert.Equal(PaymentStatus.Error, result.PaymentStatus); Assert.Equal(cardPayment.Reference, result.Reference); }
public async Task ShouldProcessPaymentWhenPartnerBankRespondsForAllStatuses(PaymentStatus paymentStatus) { var cardPayment = new CardPaymentBuilder().Build(); var successfulPayment = new PaymentResult() { PaymentStatus = paymentStatus, Reference = cardPayment.Reference, ThirdPartyReference = "12345" }; _foobarBankClient.CreatePayment(cardPayment).Returns(successfulPayment); var result = await _cardPaymentService.CreateCardPayment(cardPayment); await _paymentsRepository.Received(1).CreatePaymentRequest(cardPayment); await _paymentsRepository.Received(1).UpdatePaymentResult(successfulPayment); Assert.Equal(successfulPayment, result, _paymentResultComparer); }