public async Task HandleGetPaymentByIdQuery_ReturnsSuccessfulPaymentResponse_WhenPaymentFoundSuccessfully()
        {
            // Arrange
            var id      = new Guid().ToString();
            var request = new GetPaymentByIdQuery(new Guid().ToString());
            var payment = CreateFakePayment(id);

            var paymentResponse = CreateSuccessfulPaymentResponse(id);

            A.CallTo(() => _paymentsService.GetAsync(request.Id)).Returns(payment);
            A.CallTo(() => _paymentMapper.Map(payment)).Returns(paymentResponse);


            // Act
            var response = await _sut.Handle(request, new CancellationToken());

            // Assert
            Assert.AreEqual(paymentResponse, response);
        }
예제 #2
0
        public async Task <PaymentResponse> Handle(GetPaymentByIdQuery request, CancellationToken cancellationToken)
        {
            // Retrieve payment from DB by Id
            var payment = await _paymentsService.GetAsync(request.Id);

            if (payment == null)
            {
                return(new PaymentResponse
                {
                    Id = request.Id,
                    Status = "failure",
                    Reason = "Failed to fetch payment"
                });
            }

            payment.Status = "success";
            payment.Reason = "Payment fetched successfully";

            // Map Payment to PaymentResponse object
            var paymentResponse = _paymentMapper.Map(payment);

            return(paymentResponse);
        }