Exemplo n.º 1
0
        public async void Transfer_Balance_To_Other_User_And_Check_both_balances()
        {
            //arrange
            var sourceUserId    = 1;
            var targetUserId    = 2;
            var UserName        = "******";
            var accountId       = 1;
            var targetAccountId = 2;
            //act
            var userService = new UserService(_fixture.GetDbContext(), null);
            var accountTransactionService = new AccountTransactionService(_fixture.GetDbContext(), userService);

            await accountTransactionService.ModifyBalanceAsync(new ModifyBalanceDto
                                                               { AccountId = accountId, Amount = 100, Description = "Movimiento 1", UserId = sourceUserId });

            await accountTransactionService.BalanceTransferToUserAsync(new BalanceTransferDto
                                                                       { AccountId = targetAccountId, Amount = 10, AccountIdTarget = targetAccountId, UserTarget = UserName });

            var sourceUser = await userService.GetByIdAsync(sourceUserId);

            var targetUsert = await userService.GetByIdAsync(targetUserId);

            var sourceTotalBalance = AccountServiceMock.Instance().GetTotalBalanceByAccountId(_fixture, accountId);
            var targetTotalBalance = AccountServiceMock.Instance().GetTotalBalanceByAccountId(_fixture, targetAccountId);

            //Assert
            Assert.True(sourceUser.TotalBalance.Equals(sourceTotalBalance));
            Assert.True(targetUsert.TotalBalance.Equals(targetTotalBalance));
        }