public async Task ReturnPaymentResult_GivenValidPaymentRequest() { // Arrange IPaymentRequestDto requestPayment = new CompletedPaymentDto() { CardNumber = "4658582263620043", ExpiryDate = "0824", Amount = 10m, CurrencyCode = "GBP", Ccv = "001" }; IPaymentResponseDto expectedPaymentResponse = new CompletedPaymentDto() { PaymentId = "AAAAAAAABBBBCCCCDDDDEEEEEEEEEEEE", IsSuccessful = true }; // Act var actualPaymentResponse = await _sut.ProcessPaymentAsync(requestPayment, CancellationToken.None); // Assert Assert.That(actualPaymentResponse, Is.Not.Null); Assert.That(actualPaymentResponse.PaymentId, Is.Not.Empty); }
public void ReturnPaymentDetails_GivenPaymentExits_WhenCallingGetPayment() { // Arrange var paymentId = "ExistentPaymentId"; var paymentServiceResponse = new CompletedPaymentDto() { CardNumber = "4658582263620043", ExpiryDate = "0824", Amount = 10m, CurrencyCode = "GBP", Ccv = "001", PaymentId = "AAAAAAAABBBBCCCCDDDDEEEEEEEEEEEE", IsSuccessful = true }; A.CallTo(() => _fakePaymentService.RetrievePayment(paymentId)).Returns(paymentServiceResponse); var expectedPaymentResponse = new ProcessedPaymentResponseV1() { CardNumber = "4658582263620043", ExpiryDate = "0824", Amount = 10m, CurrencyCode = "GBP", Ccv = "001", PaymentId = "AAAAAAAABBBBCCCCDDDDEEEEEEEEEEEE", IsSuccessful = true }; // Act var actualResponse = _sut.GetPayment(paymentId); // Assert actualResponse.Result.Should().BeOfType <OkObjectResult>(); ((ObjectResult)actualResponse.Result).Value.Should().BeEquivalentTo(expectedPaymentResponse); }
public async Task <IPaymentResponseDto> ProcessPaymentAsync(IPaymentRequestDto paymentRequest, CancellationToken cancellationToken) { var paymentResult = await _acquiringBankProvider.ProcessPaymentAsync(paymentRequest, cancellationToken); var completedPaymentDto = new CompletedPaymentDto(paymentRequest, paymentResult); _paymentRepository.SavePayment(completedPaymentDto); return(paymentResult); }
public void ReturnMaskedCardNumber_GivenValidCardNumber(string inputCardNumber, string expectedCardNumber) { // Arrange var sut = new CompletedPaymentDto { CardNumber = inputCardNumber }; // Act var actualCardNumber = sut.GetMaskedCardNumber(); // Assert actualCardNumber.Should().Be(expectedCardNumber); }
public async Task ReturnValidPaymentResponse_GivenSuccessfulApiResponse() { // Arrange IPaymentResponseDto expectedPaymentResponse = new CompletedPaymentDto() { PaymentId = "AAAAAAAABBBBCCCCDDDDEEEEEEEEEEEE", IsSuccessful = true }; // Act var actualPaymentResponse = await _sut.ProcessPaymentAsync(SamplePaymentRequest, CancellationToken.None); // Assert actualPaymentResponse.Should().BeEquivalentTo(expectedPaymentResponse); }