Esempio n. 1
0
        public async Task GivenNotExistingPayment_WhenExecuteIsCalled_ThenNullIsReturned()
        {
            var apiKey     = "new api key";
            var merchantId = Guid.NewGuid();
            var merchant   = new Merchant {
                Id = merchantId
            };
            var transactionId = Guid.NewGuid();
            var query         = new GetPaymentByTransactionIdQuery {
                ApiKey = apiKey, TransactionId = transactionId
            };

            _merchantRepository.GetByApiKey(apiKey).Returns(merchant);

            var response = await _handler.Handle(query, new System.Threading.CancellationToken());

            response.Errors.Should().BeEmpty();

            response.Value.Should().BeNull();
        }
Esempio n. 2
0
        public async Task GivenExistingPayment_WhenExecuteIsCalled_ThenPaymentIsReturnedAsExpected()
        {
            var apiKey     = "new api key";
            var merchantId = Guid.NewGuid();
            var merchant   = new Merchant {
                Id = merchantId
            };
            var merchantTransactionId = "merchant tranid";
            var transactionId         = Guid.NewGuid();
            var amount                    = 15.4m;
            var currency                  = "EUR";
            var cardNumber                = "1234123412341234";
            var expiryMonth               = 12;
            var expiryYear                = 2020;
            var cvv                       = "123";
            var acquirerResultCode        = "ok";
            var acquirerResultDescription = "Result descroption";
            var acquirerTransactionId     = "transciontionId";
            var query                     = new GetPaymentByTransactionIdQuery {
                ApiKey = apiKey, TransactionId = transactionId
            };
            var payment = new Payment
            {
                MerchantTransactionId = merchantTransactionId,
                TransactionId         = transactionId,
                Amount      = amount,
                Currency    = currency,
                CardDetails = new Card
                {
                    CardNumber  = cardNumber,
                    ExpiryMonth = expiryMonth,
                    ExpiryYear  = expiryYear,
                    Cvv         = cvv
                },
                AcquirerResponse = new AcquirerResponse
                {
                    TransactionId     = acquirerTransactionId,
                    IsSuccess         = true,
                    ResultCode        = acquirerResultCode,
                    ResultDescription = acquirerResultDescription
                }
            };

            _merchantRepository.GetByApiKey(apiKey).Returns(merchant);
            _paymentrepository.GetByTransactionId(merchant.Id, transactionId).Returns(payment);


            var response = await _handler.Handle(query, new System.Threading.CancellationToken());

            response.Errors.Should().BeEmpty();

            response.Value.Should().BeEquivalentTo(new GetPaymentByTransactionIdQueryResponse
            {
                TransactionId = transactionId,
                Amount        = amount,
                Currency      = currency,
                CardNumber    = "****1234",
                ExpiryYear    = expiryYear,
                ExpiryMonth   = expiryMonth,
                Cvv           = cvv,
                StatusCode    = acquirerResultCode
            });
        }