public void CurrentFiltersViewComponent_selects_expected_filters_to_display() { // Given var viewComponent = new CurrentFiltersViewComponent { ViewComponentContext = viewComponentContext }; var categories = new List <Category> { new Category { CategoryName = "Word" }, new Category { CategoryName = "Excel" } }; const string searchString = "test"; const string sortBy = "sort"; const string sortDirection = "sortDirection"; const int itemsPerPage = 10; var availableFilters = AdministratorsViewModelFilterOptions.GetAllAdministratorsFilterModels(categories); var inputViewModel = new CentreAdministratorsViewModel( 1, new SearchSortFilterPaginationResult <AdminUser>( new PaginationResult <AdminUser>(new List <AdminUser>(), 1, 1, itemsPerPage, 0, true), searchString, sortBy, sortDirection, "CategoryName|CategoryName|Word╡Role|IsCentreAdmin|true" ), availableFilters, UserTestHelper.GetDefaultAdminUser() ); var expectedAppliedFilters = new List <AppliedFilterViewModel> { new AppliedFilterViewModel( AdminRoleFilterOptions.CentreAdministrator.DisplayText, "Role", AdminRoleFilterOptions.CentreAdministrator.FilterValue ), new AppliedFilterViewModel("Word", "Category", "CategoryName|CategoryName|Word"), }; var expectedFilterViewModel = new CurrentFiltersViewModel( expectedAppliedFilters, searchString, sortBy, sortDirection, itemsPerPage, new Dictionary <string, string>() ); // When var model = viewComponent.Invoke(inputViewModel).As <ViewViewComponentResult>().ViewData.Model .As <CurrentFiltersViewModel>(); // Then model.Should().BeEquivalentTo(expectedFilterViewModel); }
public IViewComponentResult Invoke( BaseSearchablePageViewModel searchablePageViewModel ) { var currentFilters = searchablePageViewModel.FilterBy?.Split(FilteringHelper.FilterSeparator).ToList() ?? new List <string>(); var appliedFilters = currentFilters.Select( currentFilter => PopulateAppliedFilterViewModel(searchablePageViewModel, currentFilter) ); var model = new CurrentFiltersViewModel( appliedFilters, searchablePageViewModel.SearchString, searchablePageViewModel.RouteData ); return(View(model)); }
public void CurrentFiltersViewComponent_selects_expected_filters_to_display() { // Given var viewComponent = new CurrentFiltersViewComponent { ViewComponentContext = viewComponentContext }; var categories = new[] { "Word", "Excel" }; const string searchString = "test"; var inputViewModel = new CentreAdministratorsViewModel( 1, new List <AdminUser>(), categories, searchString, "CategoryName|CategoryName|Word╡Role|IsCentreAdmin|true", 1 ); var expectedAppliedFilters = new List <AppliedFilterViewModel> { new AppliedFilterViewModel( AdminRoleFilterOptions.CentreAdministrator.DisplayText, "Role", AdminRoleFilterOptions.CentreAdministrator.FilterValue ), new AppliedFilterViewModel("Word", "Category", "CategoryName|CategoryName|Word"), }; var expectedFilterViewModel = new CurrentFiltersViewModel( expectedAppliedFilters, searchString, new Dictionary <string, string>() ); // When var model = viewComponent.Invoke(inputViewModel).As <ViewViewComponentResult>().ViewData.Model .As <CurrentFiltersViewModel>(); // Then model.Should().BeEquivalentTo(expectedFilterViewModel); }