public async Task Handle_CreateWithdrawNegativeBalance_ShouldReturnBusinessException()
        {
            var handler = new WithdrawCreateHandler(_mockMediator.Object, _mockRepo.Object);

            var request = new WithdrawCreateRequest {
                AccountId = 1, CustomerId = 1, Ammount = 200
            };
            var account = GetTestAccount();

            _mockMediator
            .Setup(m => m.Send(It.Is <AccountGetRequest>(a => a.AccountId == account.Id), default))
            .Returns(Task.FromResult(account))
            .Verifiable();

            MockWithdrawTransactionType();

            await Assert.ThrowsAsync <BusinessException>(() => handler.Handle(request, default));

            _mockMediator.Verify();
        }
        public async Task Handle_CreateWithdrawl_ShouldReturnTransaction()
        {
            var handler = new WithdrawCreateHandler(_mockMediator.Object, _mockRepo.Object);

            var request = new WithdrawCreateRequest {
                AccountId = 1, CustomerId = 1, Ammount = 10
            };
            var account        = GetTestAccount();
            var withdrawalType = GetWithdrawType();

            var withdrawTransactions = handler.BuildWithdrawalTransactions(request, account, withdrawalType);

            MockWithdrawTransactionType();
            MockMediator(withdrawTransactions, account);

            var result = await handler.Handle(request, default);

            _mockMediator.Verify();
            Assert.IsAssignableFrom <IEnumerable <TransactionModel> >(result);
            Assert.Equal(2, result.Count());
        }