Exemplo n.º 1
0
        public async Task VerifyGetDebitTransaction_ReturnAccountViewModelTestAsync()
        {
            var account = AccountMock.AccountModelFaker.Generate();
            var transactionDebitInputViewModel = TransactionMock.TransactionDebitInputViewModelModelFaker.Generate();

            _mapperMock.Setup(x => x.Map <Transaction>(It.IsAny <TransactionInputViewModel>()))
            .Returns(TransactionMock.TransactionModelFakerTyped(transactionDebitInputViewModel).Generate());

            _mapperMock.Setup(x => x.Map <TransactionViewModel>(It.IsAny <Transaction>()))
            .Returns(TransactionMock.TransactionViewModelModelFaker.Generate());

            _accountRepositoryMock.Setup(x => x.GetAccountById(account.Id))
            .ReturnsAsync(AccountMock.AccountModelFaker.Generate());

            _transactionServiceMock.Setup(x => x.DebitAccount(It.IsAny <Transaction>()))
            .Returns(Task.CompletedTask);

            var accountAppService = new AccountAppService(_accountRepositoryMock.Object,
                                                          _mapperMock.Object, _transactionServiceMock.Object, _domainNotificationMock.Object);

            var accountMethod = await accountAppService.Transaction(transactionDebitInputViewModel);

            var accountResult = Assert.IsAssignableFrom <TransactionViewModel>(accountMethod);

            _transactionServiceMock.Verify(x => x.DebitAccount(It.IsAny <Transaction>()), Times.Once());
            Assert.NotNull(accountResult);
        }