public void Arrange() { _query = new GetAccountFinanceOverviewQuery { AccountHashedId = ExpectedHashedAccountId }; _orchestrator = new Mock <EmployerAccountTransactionsOrchestrator>(); _orchestrator.Setup(o => o.Index(It.IsAny <GetAccountFinanceOverviewQuery>())) .ReturnsAsync(new OrchestratorResponse <FinanceDashboardViewModel> { Data = new FinanceDashboardViewModel { AccountHashedId = ExpectedHashedAccountId, CurrentLevyFunds = ExpectedCurrentFunds } }); _controller = new EmployerAccountTransactionsController( Mock.Of <IAuthenticationService>(), _orchestrator.Object, Mock.Of <IMapper>(), Mock.Of <IMediator>(), Mock.Of <ILog>()); }
public async Task ThenShouldDetermineIfEmployerIsLevyOrNonLevy(string apprenticeshipEmployerType, bool isLevy) { //Arrange _accountApiClient.Setup(c => c.GetAccount(AccountId)) .ReturnsAsync(new AccountDetailViewModel { ApprenticeshipEmployerType = apprenticeshipEmployerType }); var getAccountFinanceOverviewQuery = new GetAccountFinanceOverviewQuery { AccountHashedId = HashedAccountId, AccountId = AccountId }; _mediator.Setup(m => m.SendAsync(It.IsAny <GetAccountFinanceOverviewQuery>())) .ReturnsAsync(new GetAccountFinanceOverviewResponse()); //Act var response = await _orchestrator.Index(getAccountFinanceOverviewQuery); //Assert response.Should().NotBeNull(); response.Data.IsLevyEmployer.Should().Be(isLevy); }
public void Setup() { _now = DateTime.UtcNow; _logger = new Mock <ILog>(); _currentDateTime = new Mock <ICurrentDateTime>(); _forecastingService = new Mock <IDasForecastingService>(); _levyService = new Mock <IDasLevyService>(); _validator = new Mock <IValidator <GetAccountFinanceOverviewQuery> >(); _query = new GetAccountFinanceOverviewQuery { AccountId = ExpectedAccountId }; _expiringFunds = new ExpiringAccountFunds { AccountId = ExpectedAccountId, ExpiryAmounts = new List <ExpiringFunds> { new ExpiringFunds { PayrollDate = new DateTime(2019, 4, 6), Amount = 3000 }, new ExpiringFunds { PayrollDate = new DateTime(2019, 5, 6), Amount = 4000 }, new ExpiringFunds { PayrollDate = new DateTime(2019, 3, 6), Amount = 2000 } } }; _projectedCalculation = new ProjectedCalculation { AccountId = ExpectedAccountId, FundsIn = ExpectedFundsIn, FundsOut = ExpectedFundsOut, NumberOfMonths = 12 }; _handler = new GetAccountFinanceOverviewQueryHandler( _currentDateTime.Object, _forecastingService.Object, _levyService.Object, _validator.Object, _logger.Object); _currentDateTime.Setup(d => d.Now).Returns(_now); _forecastingService.Setup(s => s.GetExpiringAccountFunds(ExpectedAccountId)).ReturnsAsync(_expiringFunds); _forecastingService.Setup(s => s.GetProjectedCalculations(ExpectedAccountId)).ReturnsAsync(_projectedCalculation); _levyService.Setup(s => s.GetAccountBalance(ExpectedAccountId)).ReturnsAsync(ExpectedCurrentFunds); _validator.Setup(v => v.ValidateAsync(_query)) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string>() }); }
public async Task <ActionResult> Index(GetAccountFinanceOverviewQuery query) { _logger.Info($"EmployerAccountTransactionsController Index GetAccountFinanceOverviewQuery AccountHashedId : {query.AccountHashedId} AccountId : {query.AccountId} "); var viewModel = await _accountTransactionsOrchestrator.Index(query); _logger.Info($"After calling _accountTransactionsOrchestrator ViewModel : {viewModel} viewModel.RedirectUrl : {viewModel.RedirectUrl} "); if (viewModel.RedirectUrl != null) { return(Redirect(viewModel.RedirectUrl)); } return(View(viewModel)); }
public virtual async Task <OrchestratorResponse <FinanceDashboardViewModel> > Index(GetAccountFinanceOverviewQuery query) { var accountTask = _accountApiClient.GetAccount(query.AccountId); _logger.Info("After GetAccount call"); var getAccountFinanceOverviewTask = _mediator.SendAsync(query); var account = await accountTask; var getAccountFinanceOverview = await getAccountFinanceOverviewTask; _logger.Info($"account : {account} getAccountFinanceOverview: {getAccountFinanceOverview} "); _logger.Info($" account.ApprenticeshipEmployerType: {account.ApprenticeshipEmployerType} AccountHashedId: {query.AccountHashedId} CurrentLevyFunds: {getAccountFinanceOverview.CurrentFunds} "); var viewModel = new OrchestratorResponse <FinanceDashboardViewModel> { Data = new FinanceDashboardViewModel { IsLevyEmployer = (ApprenticeshipEmployerType)Enum.Parse(typeof(ApprenticeshipEmployerType), account.ApprenticeshipEmployerType, true) == ApprenticeshipEmployerType.Levy, AccountHashedId = query.AccountHashedId, CurrentLevyFunds = getAccountFinanceOverview.CurrentFunds, ExpiringFunds = getAccountFinanceOverview.ExpiringFundsAmount, ExpiryDate = getAccountFinanceOverview.ExpiringFundsExpiryDate, TotalSpendForLastYear = getAccountFinanceOverview.TotalSpendForLastYear, FundingExpected = getAccountFinanceOverview.FundsIn, AvailableFunds = getAccountFinanceOverview.FundsIn - getAccountFinanceOverview.FundsOut, ProjectedSpend = getAccountFinanceOverview.FundsOut } }; _logger.Info($"viewModel : {viewModel}"); return(viewModel); }