Exemplo n.º 1
0
        public async Task NewAccount_Should_Allows_Closing2()
        {
            var getAccountPresenter   = new GetAccountDetailsPresenter();
            var closeAccountPresenter = new CloseAccountPresenter();
            var withdrawPresenter     = new WithdrawPresenter();

            var getAccountUseCase = new GetAccountDetailsUseCase(
                getAccountPresenter, this._fixture.AccountRepository);

            var withdrawUseCase = new WithdrawUseCase(this._fixture.AccountService,
                                                      withdrawPresenter, this._fixture.AccountRepository, this._fixture.UnitOfWork);

            var sut = new CloseAccountUseCase(
                closeAccountPresenter, this._fixture.AccountRepository);

            await getAccountUseCase.Execute(new GetAccountDetailsInput(this._fixture.Context.DefaultAccountId));

            var getAccountDetailtOutput = getAccountPresenter.GetAccountDetails.First();

            await withdrawUseCase.Execute(new WithdrawInput(this._fixture.Context.DefaultAccountId,
                                                            new PositiveMoney(getAccountDetailtOutput.CurrentBalance.ToDecimal())));

            var input = new CloseAccountInput(this._fixture.Context.DefaultAccountId);
            await sut.Execute(input);

            Assert.Equal(input.AccountId, closeAccountPresenter.ClosedAccounts.First().AccountId);
        }
Exemplo n.º 2
0
        public GetAccountDetailsUseCaseTest()
        {
            _accountReadOnlyRepository = new Mock <IAccountReadOnlyRepository>();

            getAccountDetailsUseCase = new GetAccountDetailsUseCase(_accountReadOnlyRepository.Object);
        }