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); }
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); }