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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }