示例#1
0
        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);
        }
示例#4
0
 /// <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);
        }