public Payment CreatePayment(PaymentCreationData data) { return(new Payment() { Id = data.PaymentId, CardNumber = data.CardNumber, CardHolder = data.CardHolder, ExecutionDate = DateTime.UtcNow, ExpiryYear = data.ExpiryYear, ExpiryMonth = data.ExpiryMonth, CCV = data.CCV, Amount = data.Amount, Currency = data.Currency }); }
public void CreatePayment__when__BankClient_returns_a_Payment__should__save_to_repository() { var data = new PaymentCreationData(); var bankPayment = new Payment() { Id = Guid.NewGuid().ToString() }; bankClient.Setup(c => c.CreatePayment(data)).Returns(bankPayment); // act var result = paymentProcessor.CreatePayment(data); paymentsRepository.Verify(r => r.Save(It.IsAny <Payment>()), Times.AtLeastOnce); }
public void CreatePayment__when__BankClient_returns_an_error__should__return_Error_result() { var data = new PaymentCreationData(); var bankPayment = new Payment() { Id = Guid.NewGuid().ToString() }; bankClient.Setup(c => c.CreatePayment(data)).Throws <Exception>(); // act var result = paymentProcessor.CreatePayment(data); result.IsSuccess.Should().BeFalse(); result.Error.Should().NotBeNullOrEmpty(); result.PaymentId.Should().BeNull(); }
public void CreatePayment__when__BankClient_returns_a_Payment__should__return_Successfull_result() { var data = new PaymentCreationData(); var bankPayment = new Payment() { Id = Guid.NewGuid().ToString() }; bankClient.Setup(c => c.CreatePayment(data)).Returns(bankPayment); // act var result = paymentProcessor.CreatePayment(data); result.IsSuccess.Should().BeTrue(); result.Error.Should().BeNull(); result.PaymentId.Should().Be(bankPayment.Id); }
public PaymentCreationResult CreatePayment(PaymentCreationData data) { try { // generate the Payment Id data.PaymentId = Guid.NewGuid().ToString(); var payment = bankClient.CreatePayment(data); paymentsRepository.Save(payment); // A validation error should return a Fail result //return PaymentCreationResult.Fail("Not enough funds"); return(PaymentCreationResult.Success(payment)); } catch (Exception exc) { logger.LogError(exc, "Failed to process payment creation"); return(PaymentCreationResult.Fail("General error on creating payment")); } }