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); }
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); }