public void TestDebitTransaction_50030() { //Arrange var dto = new AmountDTO { Amount = 50030 }; var customerDebit = new CustomerDebitDTO { Amount = 50030, TransferAmount = 49980, Charge = 50, DebitAmount = 50030 }; //Act transSurchargeService.Setup(t => t.DebitTransaction(dto)).Returns(customerDebit); ITransSurChargeService moq = transSurchargeService.Object; var result = moq.DebitTransaction(dto); //Assert Assert.AreEqual(customerDebit.Amount, result.Amount); Assert.AreEqual(customerDebit.TransferAmount, result.TransferAmount); Assert.AreEqual(customerDebit.Charge, result.Charge); Assert.AreEqual(customerDebit.DebitAmount, result.DebitAmount); }
public CustomerDebitDTO DebitTransaction(AmountDTO dto) { var charge = _transSurChargeRepository.GetSurcharge(dto.Amount); var transferAmount = _transSurChargeRepository.GetTransferAmount(dto.Amount); if (charge.FeeAmount > dto.Amount) { throw new ArgumentException("The amount is too low to transfer"); } if (charge == null) { throw new ArgumentNullException("Sorry! Something went wrong. Try again."); } var debitInfo = new CustomerDebitDTO { Amount = transferAmount + charge.FeeAmount, TransferAmount = transferAmount, Charge = charge.FeeAmount, DebitAmount = transferAmount + charge.FeeAmount }; return(debitInfo); }
public CustomerTransferDTO TransferTransaction(AmountDTO dto) { var fee = _feesRepository.GetFee(dto.Amount); if (fee == null) { throw new ArgumentNullException("Sorry! Something went wrong. Try again."); } var transferInfo = new CustomerTransferDTO { TransferAmount = dto.Amount, ExpectedCharge = dto.Amount + fee.FeeAmount, Charge = fee.FeeAmount }; return(transferInfo); }
public IActionResult Surcharge(AmountDTO amount) { try { var debit = _transSurChargeService.DebitTransaction(amount); return(Ok(new { success = true, message = "Your transfer was successfully", data = debit })); } catch (Exception ex) { return(BadRequest(new { success = false, message = ex.Message, data = new { } })); } }
public IActionResult Transfer(AmountDTO amount) { try { var transactinFee = _calculateFeeService.TransferTransaction(amount); return(Ok(new { success = true, message = "Your transfer was successfully", data = transactinFee })); } catch (Exception ex) { return(BadRequest(new { success = false, message = ex.Message, data = new { } })); } }