コード例 #1
0
        public Product AuthTransaction(TransactionAuth transactionAuthData)
        {
            var transactionData = _transactionRepo.Get(transactionAuthData.TransactionId);
            var product         = transactionData.ProductToBuy;

            transactionData.Authorize(transactionAuthData.AuthCode);

            _transactionRepo.Update(transactionData);
            return(product);
        }
コード例 #2
0
        public void Post([FromBody] TransactionAuth transactionAuth)
        {
            var product = _transactionSystem.AuthTransaction(transactionAuth);

            _merchantNotifier.NotifyMerchant(new MerchantNotificationMessage()
            {
                ProductId     = product.ProductId,
                TransactionId = transactionAuth.TransactionId
            });
        }
コード例 #3
0
        public Product AuthTransaction(TransactionAuth transactionAuthData)
        {
            var transaction = TransactionStorage.FirstOrDefault(s => s.TransactionGuid == transactionAuthData.TransactionId && s.TransactionStatus == TransactionStatusEnum.AuthWaiting);

            if (transaction == null)
            {
                throw new ArgumentException("No transaction");
            }

            var product = transaction.ProductToBuy;

            transaction.Authorize(transactionAuthData.AuthCode);
            return(product);
        }
コード例 #4
0
        public async Task Should_Return_A_Successful_StatusCode_When_A_Null_Response_By_Repository()
        {
            //Arange
            _transactionAuthRequest.Amount = 100;

            TransactionAuth response = null;

            _bankAuthProvider.Setup(x => x.ValidateAsync(It.IsAny <decimal>()))
            .Returns(Task.FromResult(response));

            //Act
            var result = await _devBankAuthProvider.VerifyAsync(_transactionAuthRequest);

            //Assert
            Assert.NotNull(result);
            Assert.AreEqual(result.Code, "10000");
        }
コード例 #5
0
        public async Task Should_Return_A_Not_Successful_StatusCode_When_A_Not_Null_Null_Response_By_Repository()
        {
            //Arange
            _transactionAuthRequest.Amount = 105;

            var response = new TransactionAuth(Guid.NewGuid(), "05", "20005", "Declined - Do not honour");

            _bankAuthProvider.Setup(x => x.ValidateAsync(It.IsAny <decimal>()))
            .Returns(Task.FromResult(response));

            //Act
            var result = await _devBankAuthProvider.VerifyAsync(_transactionAuthRequest);

            //Assert
            Assert.NotNull(result);
            Assert.AreNotEqual(result.Code, "10000");
            Assert.AreEqual(result.Code, response.TransactionCode);
        }