public async Task GetOnePayment_ThrowsException_IfPaymentNotFound() { //Arrange var payment = new Payment { Id = Guid.NewGuid() }; var query = new GetOnePaymentQuery(payment.Id); _paymentRepository.GetByIdAsync(Arg.Any <Guid>()) .Returns(Task.FromResult <Payment>(null)); //Act //Assert var exception = await Assert.ThrowsAsync <StatusCodeException>(async() => await _subject.Handle(query)); Assert.Equal(HttpStatusCode.NotFound, exception.HttpStatusCode); }
public async Task GetOnePayment_ReturnsPayment() { //Arrange const string encryptedCardNumber = "encrypted-card-number"; var payment = new Payment { Id = Guid.NewGuid(), Amount = 100, Currency = "EUR", FullName = "Dmitriy Purtseladze", CardNumber = encryptedCardNumber, Expiry = "08/22", BankPaymentId = Guid.NewGuid().ToString(), BankPaymentStatus = "success" }; var query = new GetOnePaymentQuery(payment.Id); _paymentRepository.GetByIdAsync(Arg.Any <Guid>()).Returns(payment); const string decryptedCardNumber = "5555-5555-5555-5555"; _aesHelper.Decrypt(encryptedCardNumber).Returns(decryptedCardNumber); var maskedCardNumber = "xxxx-xxxx-xxxx-5555"; _creditCardMasker.MaskCreditCardNumber(decryptedCardNumber).Returns(maskedCardNumber); //Act var response = await _subject.Handle(query); //Assert Assert.NotNull(response); Assert.Equal(payment.Id, response.Id); Assert.Equal(payment.FullName, response.FullName); Assert.Equal(payment.Amount, response.Amount); Assert.Equal(payment.Currency, response.Currency); Assert.Equal(payment.Expiry, response.Expiry); Assert.Equal(payment.BankPaymentId, response.BankPaymentId); Assert.Equal(payment.BankPaymentStatus, response.BankPaymentStatus); Assert.Equal(encryptedCardNumber, payment.CardNumber); Assert.Equal(maskedCardNumber, response.CardNumber); }
public async Task <PaymentResponse> GetOnePaymentAsync(Guid id) { var query = new GetOnePaymentQuery(id); return(await _mediator.Send(query)); }