public async Task Return_Error_Result_If_Payment_NotFound() { var paymentId = Guid.NewGuid().ToString(); var mockPaymentRepository = new Mock <IPaymentRepository>(); mockPaymentRepository.Setup(x => x.FindBy(It.IsAny <string>())) .ReturnsAsync(null as Payment); var mockCyptoService = new Mock <ICryptoService>(); var sut = new GetPaymentQueryHandler(mockPaymentRepository.Object, mockCyptoService.Object); var result = await sut.HandleAsync(new GetPaymentQuery { PaymentId = paymentId }) as ErrorResult; result.Message.Should().Be($"There is no payment with id: {paymentId}"); }
public async Task Get_Payment_Details() { var paymentId = Guid.NewGuid().ToString(); var payment = GivenPayment(paymentId); var mockPaymentRepository = new Mock <IPaymentRepository>(); mockPaymentRepository.Setup(x => x.FindBy(It.IsAny <string>())) .ReturnsAsync(payment); var mockCyptoService = new Mock <ICryptoService>(); mockCyptoService.Setup(x => x.Decrypt(payment.CardNumber, It.IsAny <string>())) .Returns(cardNumber); var sut = new GetPaymentQueryHandler(mockPaymentRepository.Object, mockCyptoService.Object); var result = await sut.HandleAsync(new GetPaymentQuery { PaymentId = paymentId }) as SuccessResult; result.Amount.Should().Be(payment.Amount); result.PaymentDate.Should().Be(payment.CreatedDate); result.Currency.Should().Be(payment.Currency); result.CardNumber.Should().Be(cardNumber.Mask()); }