public async Task DepositAmout_ToAccountId_ShouldUpdate_Balance() { var options = new DbContextOptionsBuilder <BankContext>() .UseInMemoryDatabase(databaseName: "OBS") .Options; using (var context = new BankContext(options)) { context.Accounts.Add(new Account { Id = 1, AccountNumber = 222616, Balance = 10050, ClientId = 1, BankId = 1, CreatedDate = DateTime.Now }); context.SaveChanges(); } var mockMapper = new Mock <IMapper>(); var dto = new DepositRequestDto { AccountId = 1, Amount = 10 }; using (var context = new BankContext(options)) { AccountRepository accountRepository = new AccountRepository(context, mockMapper.Object); var amt = await accountRepository.DepositAmount(dto); Assert.AreEqual(10060, amt); context.Database.EnsureDeleted(); } }
/// <summary> /// Deposit amount to client's account and return final balance /// </summary> /// <param name="depositRequestDto"></param> /// <returns></returns> public async Task <float> DepositAmount(DepositRequestDto depositRequestDto) { var account = _bankContext.Accounts.FirstOrDefault(x => x.Id == depositRequestDto.AccountId); if (account != null) { account.Balance += depositRequestDto.Amount; } _bankContext.SaveChanges(); return(account.Balance); }
public async Task DepositAmount_ToAccountId_ShouldUpdate_Balance() { //Arrange Mock <IAccountRepository> sut = new Mock <IAccountRepository>(); _accountRepo = sut.Object; var depositRequest = new DepositRequestDto { AccountId = 1, Amount = 10 }; var expected = 20; sut.Setup(x => x.DepositAmount(depositRequest)).Returns(async() => expected); var accountService = new AccountService(_accountRepo); //Act var res = await accountService.DepositAmount(depositRequest); //Act Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(expected, res); }
/// <summary> /// Deposit amount into clients account /// </summary> /// <param name="depositRequestDto"></param> /// <returns></returns> public async Task <float> DepositAmount(DepositRequestDto depositRequestDto) { return(await _accountRepository.DepositAmount(depositRequestDto)); }
public async Task <float> DepositAmount(DepositRequestDto depositRequestDto) { var balance = await _accountService.DepositAmount(depositRequestDto); return(balance); }