//private void SetupFilterLists(string attendance, string studyMode, string qualificationLevel, string pattern, string distance, string dfe1619Funded, string location, string startDate, string providerKeyword, TrainingCourseResultsViewModel viewModel) //{ // viewModel.CourseFiltersModel.Location = location; // viewModel.CourseFiltersModel.ProviderKeyword = providerKeyword; // viewModel.CourseFiltersModel.AttendanceSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.AttendanceMode)}", AttendanceModesSource.Split(','), attendance); // viewModel.CourseFiltersModel.PatternSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.AttendancePattern)}", AttendancePatternModesSource.Split(','), pattern); // viewModel.CourseFiltersModel.QualificationSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.QualificationLevel)}", QualificationLevelSource.Split(','), qualificationLevel); // viewModel.CourseFiltersModel.StudyModeSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.StudyMode)}", StudyModesSource.Split(','), studyMode); // viewModel.CourseFiltersModel.DistanceSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.Distance)}", DistanceSource.Split(','), distance); // viewModel.CourseFiltersModel.AgeSuitabilitySelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.AgeSuitability)}", AgeSuitabilitySource.Split(','), dfe1619Funded); // viewModel.CourseFiltersModel.StartDateSelectedList = // courseSearchConverter.GetFilterSelectItems( // $"{nameof(CourseFiltersModel)}.{nameof(CourseFiltersModel.StartDate)}", StartDateSource.Split(','), startDate); //} private void SetupSearchLinks(string searchTerm, CourseSearchResultsViewModel viewModel, string pathQuery, CourseSearchOrderBy sortBy) { viewModel.OrderByLinks = courseSearchViewModelService.GetOrderByLinks(pathQuery, sortBy); viewModel.ResetFilterUrl = new Uri($"{CourseSearchResultsPage}?searchterm={searchTerm}", UriKind.RelativeOrAbsolute); }
public void IndexTests(string searchTerm, string filterCourseByText, string pageTitle, string courseSearchResultsPage, string courseDetailsPage, string sortBy, CourseSearchResult courseSearchResponse) { // setupFakes A.CallTo(() => fakeCourseSearchService.SearchCoursesAsync(A <string> ._, A <CourseSearchProperties> ._)).Returns(courseSearchResponse); // Assign var controller = new CourseSearchResultsController(fakeApplicationLogger, fakeCourseSearchService, asyncHelper, fakeCourseSearchViewModelService, fakeBuildQueryStringService) { FilterCourseByText = filterCourseByText, PageTitle = pageTitle, CourseSearchResultsPage = courseSearchResultsPage, CourseDetailsPage = courseDetailsPage, LocationRegex = nameof(CourseSearchResultsController.LocationRegex), RecordsPerPage = 40, AdvancedLoanProviderLabel = nameof(CourseSearchResultsController.AdvancedLoanProviderLabel), LocationLabel = nameof(CourseSearchResultsController.LocationLabel), ProviderLabel = nameof(CourseSearchResultsController.ProviderLabel), StartDateLabel = nameof(CourseSearchResultsController.StartDateLabel), OrderByText = nameof(CourseSearchResultsController.OrderByText), StartDateOrderByText = nameof(CourseSearchResultsController.StartDateOrderByText), DistanceOrderByText = nameof(CourseSearchResultsController.DistanceOrderByText), RelevanceOrderByText = nameof(CourseSearchResultsController.RelevanceOrderByText), NoTrainingCoursesFoundText = nameof(CourseSearchResultsController.NoTrainingCoursesFoundText) }; // Act var controllerResult = controller.WithCallTo(contrl => contrl.Index( searchTerm, string.Empty, string.Empty, string.Empty, string.Empty, sortBy, string.Empty, string.Empty, false, 1)); // Assert controllerResult.ShouldRenderView("SearchResults").WithModel <CourseSearchResultsViewModel>( vm => { vm.PageTitle.Should().BeEquivalentTo(controller.PageTitle); vm.FilterCourseByText.Should().BeEquivalentTo(controller.FilterCourseByText); }); if (!string.IsNullOrWhiteSpace(searchTerm)) { A.CallTo(() => fakeCourseSearchService.SearchCoursesAsync(A <string> ._, A <CourseSearchProperties> ._)).MustHaveHappened(); if (courseSearchResponse.Courses.Any()) { A.CallTo(() => fakeCourseSearchViewModelService.GetOrderByLinks(A <string> ._, A <CourseSearchOrderBy> ._)).MustHaveHappened(); A.CallTo(() => fakeCourseSearchViewModelService.SetupPaging(A <CourseSearchResultsViewModel> ._, A <CourseSearchResult> ._, A <string> ._, A <int> ._, A <string> ._)).MustHaveHappened(); } } else { A.CallTo(() => fakeCourseSearchService.SearchCoursesAsync(A <string> ._, A <CourseSearchProperties> ._)).MustNotHaveHappened(); A.CallTo(() => fakeCourseSearchViewModelService.GetOrderByLinks(A <string> ._, A <CourseSearchOrderBy> ._)).MustNotHaveHappened(); A.CallTo(() => fakeCourseSearchViewModelService.SetupPaging(A <CourseSearchResultsViewModel> ._, A <CourseSearchResult> ._, A <string> ._, A <int> ._, A <string> ._)).MustNotHaveHappened(); } }