public async Task ItShouldReturnAViewAndModelOnSuccess()
        {
            var accountFinanceReponse = new AccountFinanceResponse
            {
                Account = new Core.Models.Account
                {
                    AccountId      = 123,
                    DasAccountName = "Test Account",
                    DateRegistered = DateTime.Today,
                    OwnerEmail     = "*****@*****.**"
                },
                StatusCode = SearchResponseCodes.Success
            };
            var id = "123";

            AccountHandler.Setup(x => x.FindFinance(id)).ReturnsAsync(accountFinanceReponse);
            var actual = await Unit.Finance("123");

            Assert.IsNotNull(actual);
            Assert.IsNotNull(actual);
            Assert.IsInstanceOf <ViewResult>(actual);
            Assert.AreEqual("", ((ViewResult)actual).ViewName);
            Assert.IsInstanceOf <FinanceViewModel>(((ViewResult)actual).Model);
            Assert.AreEqual(accountFinanceReponse.Account, ((FinanceViewModel)((ViewResult)actual).Model).Account);
            Assert.AreEqual(accountFinanceReponse.Balance, ((FinanceViewModel)((ViewResult)actual).Model).Balance);
        }
Esempio n. 2
0
        public async Task <AccountFinanceResponse> FindFinance(string id)
        {
            var response = new AccountFinanceResponse
            {
                StatusCode = SearchResponseCodes.NoSearchResultsFound
            };

            var account = await _accountRepository.Get(id, AccountFieldsSelection.Finance);

            if (account != null)
            {
                response.StatusCode = SearchResponseCodes.Success;
                response.Account    = account;
                response.Balance    = account.Transactions.Any()
                    ? account.Transactions.First().Balance
                    : await _accountRepository.GetAccountBalance(id);
            }

            return(response);
        }
        public async Task ItShouodReturnHttpNotFoundOnSearchFailed()
        {
            var accountFinanceReponse = new AccountFinanceResponse
            {
                Account = new Core.Models.Account
                {
                    AccountId      = 123,
                    DasAccountName = "Test Account",
                    DateRegistered = DateTime.Today,
                    OwnerEmail     = "*****@*****.**"
                },
                StatusCode = SearchResponseCodes.SearchFailed
            };
            var id = "123";

            AccountHandler.Setup(x => x.FindFinance(id)).ReturnsAsync(accountFinanceReponse);
            var actual = await Unit.Finance("123");

            Assert.IsNotNull(actual);
            Assert.IsInstanceOf <HttpNotFoundResult>(actual);
        }
        public async Task <AccountFinanceResponse> FindFinance(string id)
        {
            var response = new AccountFinanceResponse
            {
                StatusCode = SearchResponseCodes.NoSearchResultsFound
            };

            var getAccountTask = _accountRepository.Get(id, AccountFieldsSelection.Finance);
            var getBalanceTask = _accountRepository.GetAccountBalance(id);

            await Task.WhenAll(getAccountTask, getBalanceTask);

            var account = getAccountTask.Result;
            var balance = getBalanceTask.Result;

            if (account != null)
            {
                response.StatusCode = SearchResponseCodes.Success;
                response.Account    = account;
                response.Balance    = balance;
            }

            return(response);
        }