public void InvalidFilteringModel(bool descending, CategoriesSortingCriterion criterion)
        {
            var model = new CategoriesFilteringModel("", criterion, descending, 1, 1);
            var query = Context.Categories.AsQueryable();

            Assert.Throws <ArgumentOutOfRangeException>(() => FilteringServices.Filter(query, model));
        }
        private Func <Category, object> GetLambda(CategoriesSortingCriterion criterion)
        {
            switch (criterion)
            {
            case CategoriesSortingCriterion.None:
                return(c => c.Id);

            case CategoriesSortingCriterion.Name:
                return(c => c.Name);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public void ReturnsProperlyFilteredCategories(string searchText, CategoriesSortingCriterion criterion,
                                                      bool descending, int pageIndex, int pageSize)
        {
            var model      = new CategoriesFilteringModel(searchText, criterion, descending, pageIndex, pageSize);
            var categories = AddCategories(30);
            var query      = Context.Categories.AsQueryable();

            var filteredCategories = FilteringServices.Filter(query, model).ToList();

            var expected = categories.Where(c => c.Name.Contains(searchText));
            var lambda   = GetLambda(criterion);

            expected = descending ? expected.OrderByDescending(lambda) : expected.OrderBy(lambda);
            var expectedList = expected.Skip(model.PageIndex * model.PageSize).Take(model.PageSize).ToList();

            Assert.Equal(expectedList.Count, filteredCategories.Count);
            for (var i = 0; i < expectedList.Count; i++)
            {
                Assert.True(expectedList[i].Id == (filteredCategories[i].Id));
            }
        }
Exemplo n.º 4
0
 public CategoriesFilteringModel(string searchText, CategoriesSortingCriterion sortingCriterion,
                                 bool descending, int pageIndex, int pageSize) : base(searchText, descending, pageIndex, pageSize)
 {
     SortingCriterion = sortingCriterion;
 }