public async Task <ActionResult <CreatePaymentResponseV1> > CreatePayment([FromBody] CreatePaymentRequestV1 newPaymentRequestBodyV1, CancellationToken cancellationToken) { var newPaymentDto = _mapper.Map <CompletedPaymentDto>(newPaymentRequestBodyV1); var paymentResult = await _paymentService.ProcessPaymentAsync(newPaymentDto, cancellationToken); var paymentResultResponse = _mapper.Map <CreatePaymentResponseV1>(paymentResult); return(CreatedAtRoute(nameof(GetPayment), new { paymentId = paymentResultResponse.PaymentId }, paymentResultResponse)); }
public async Task CallPaymentServiceWithNewPayment_GivenValidPaymentRequest_WhenCallingCreatePayment() { // Arrange var createPaymentRequest = new CreatePaymentRequestV1() { CardNumber = "4658582263620043", ExpiryDate = "0824", Amount = 10m, CurrencyCode = "GBP", Ccv = "001" }; var expectedPaymentResponse = new CreatePaymentResponseV1() { PaymentId = "AAAAAAAABBBBCCCCDDDDEEEEEEEEEEEE", IsSuccessful = true }; // Act var actualResponse = await _sut.CreatePayment(createPaymentRequest, CancellationToken.None); // Assert actualResponse.Result.Should().BeOfType <CreatedAtRouteResult>(); ((ObjectResult)actualResponse.Result).Value.Should().BeEquivalentTo(expectedPaymentResponse); }