public async void Deposit_Valid_Amount(string pin, string name, string accountId, double amount) { var account = Substitute.For <Account>(); var customer = Substitute.For <Customer>(); customer.FindAccount(Arg.Any <Guid>()) .Returns(account); customerReadOnlyRepository .GetByAccount(Guid.Parse(accountId)) .Returns(customer); var depositUseCase = new DepositService( customerReadOnlyRepository, customerWriteOnlyRepository, converter ); var request = new DepositCommand( Guid.Parse(accountId), amount ); DepositResult result = await depositUseCase.Handle(request); Assert.Equal(request.Amount, result.Transaction.Amount); }
public async Task <IActionResult> Deposit(CreateDepositRequest request, CancellationToken token) { _logger.LogInformation($"{nameof(AccountController)}.{nameof(Deposit)} - {request}"); if (!ModelState.IsValid) { return(BadRequest($"Problem with CreateDepositRequest")); } if (!Currencies.IsValid(request.Currency.ToUpperInvariant())) { return(BadRequest($"Currency symbol entered is invalid!")); } CreateDeposit deposit = await CreateDepositFromLocalCurrency(request, token); if (!_options.BaseCurrency.Equals(request.Currency, StringComparison.InvariantCultureIgnoreCase)) { deposit = await CreateDepositFromForeignCurrency(request, token); } DepositResult depositResult = await _accountService.Deposit(deposit); if (depositResult.Status == AccountStatus.Error) { return(BadRequest($"{depositResult.Message}")); } AccountDepositResponse response = new AccountDepositResponse(depositResult.AccountId, depositResult.Amount.Value, depositResult.Currency.Value, depositResult.OldBalance.Value, depositResult.NewBalance.Value); return(Ok(response)); }
public DepositView(DepositResult data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } this.Data = data; }
public async Task <IActionResult> Deposit([FromBody] DepositCommand command) { DepositResult depositResult = await _depositCommandHandler.Execute(command); if (depositResult == null) { return(new NoContentResult()); } Model model = new Model( depositResult.Transaction.Amount, depositResult.Transaction.Description, depositResult.Transaction.TransactionDate, depositResult.UpdatedBalance); return(new ObjectResult(model)); }
public async void Deposit_Valid_Amount(string accountId, double amount) { var account = new Account(Guid.NewGuid()); var customer = new Customer("08724050601", "Jorge Perales Diaz"); accountReadOnlyRepository .Get(Guid.Parse(accountId)) .Returns(account); var depositUseCase = new DepositUseCase( accountReadOnlyRepository, accountWriteOnlyRepository ); DepositResult result = await depositUseCase.Execute( Guid.Parse(accountId), amount); Assert.Equal(amount, result.Transaction.Amount); }
public async Task <IActionResult> Deposit([FromBody] DepositRequest request) { DepositResult depositResult = await depositService.Execute( request.AccountId, request.Amount); if (depositResult == null) { return(new NoContentResult()); } Model model = new Model( depositResult.Transaction.Amount, depositResult.Transaction.Description, depositResult.Transaction.TransactionDate, depositResult.UpdatedBalance ); return(new ObjectResult(model)); }
public async Task <IActionResult> Deposit([FromBody] DepositRequest request) { var command = new DepositCommand( request.AccountId, request.Amount); DepositResult depositResult = await depositService.Process(command); if (depositResult == null) { return(new NoContentResult()); } DepositModel model = new DepositModel( depositResult.Transaction.Amount, depositResult.Transaction.Description, depositResult.Transaction.TransactionDate, depositResult.UpdatedBalance ); return(new ObjectResult(model)); }
public async void Deposit_Valid_Amount(string accountId, double amount) { var account = new Account(Guid.NewGuid()); var customer = new Customer("08724050601", "Ivan Paulovich"); accountReadOnlyRepository .Get(Guid.Parse(accountId)) .Returns(account); var depositUseCase = new DepositService( accountReadOnlyRepository, accountWriteOnlyRepository ); var request = new DepositCommand( Guid.Parse(accountId), amount ); DepositResult result = await depositUseCase.Process(request); Assert.Equal(request.Amount, result.Transaction.Amount); }
public async void Deposit_Valid_Amount(string accountId, double amount) { var account = Substitute.For<Account>(); var customer = Substitute.For<Customer>(); accountReadOnlyRepository .Get(Guid.Parse(accountId)) .Returns(account); var depositUseCase = new DepositService( accountReadOnlyRepository, accountWriteOnlyRepository, converter ); var request = new DepositCommand( Guid.Parse(accountId), amount ); DepositResult result = await depositUseCase.Process(request); Assert.Equal(request.Amount, result.Transaction.Amount); }