Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public async Task <PaymentResponse> GetOnePaymentAsync(Guid id)
        {
            var query = new GetOnePaymentQuery(id);

            return(await _mediator.Send(query));
        }