public Product AuthTransaction(TransactionAuth transactionAuthData) { var transactionData = _transactionRepo.Get(transactionAuthData.TransactionId); var product = transactionData.ProductToBuy; transactionData.Authorize(transactionAuthData.AuthCode); _transactionRepo.Update(transactionData); return(product); }
public void Post([FromBody] TransactionAuth transactionAuth) { var product = _transactionSystem.AuthTransaction(transactionAuth); _merchantNotifier.NotifyMerchant(new MerchantNotificationMessage() { ProductId = product.ProductId, TransactionId = transactionAuth.TransactionId }); }
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); }
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"); }
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); }