Exemplo n.º 1
0
 public void GenericContainTest()
 {
     var vm = new SortingFilterModel();
     var filterService = new FilterService(new ExpressionBuilder(), new SortingService(new ExpressionBuilder()));
     var query = Persons.AsQueryable();
     query = filterService.AppendQueryWithContains<Person>("PhoneNr", "12345", query, vm.AsSortingFilterModel);
     Assert.IsTrue(query.Count() == 4);
 }
Exemplo n.º 2
0
        public void GenericPagingSinglePageDatasCalculationTest()
        {
            //setup view model
            var filterSerivce = new FilterService(new ExpressionBuilder(), new SortingService(new ExpressionBuilder()));
            var vm = new SortingFilterModel();
            vm.PageSize = 20;

            //test senario 1, total as 900, index 1, should return 5 singlepagedata, with the page1 as selected
            vm.PageTotal = 900;
            vm.PageIndex = 1;
            filterSerivce.ReCaculateSinglePageDatas(vm);

            var singlePageDatas = vm.SinglePageDatas;

            Assert.IsTrue(singlePageDatas.FirstOrDefault() != null && singlePageDatas.FirstOrDefault().IsCurrentPageSelected == true, "the first page is not selected");

            Assert.IsTrue(singlePageDatas.Where(x => x.IsCurrentPageSelected == true).Count() == 1, "only one page is selected");
            Assert.IsTrue(singlePageDatas.Count() == 5, "total 5 pages as output");

            //test senario 2, set the pageindex to 6, then 4,5,6,7,8 should be presented
            vm.PageIndex = 6;
            filterSerivce.ReCaculateSinglePageDatas(vm);

            singlePageDatas = vm.SinglePageDatas;
            Assert.IsTrue(singlePageDatas.Count() == 5, "total 5 pages as output");
            Assert.IsTrue(singlePageDatas.IndexOf(singlePageDatas.FirstOrDefault(x => x.IsCurrentPageSelected)) == 2, "incorrect page is seleted");

            //test senario 3, move to last page, then 896, 897, 898, 899, 900 should be presented
            vm.PageIndex = 900;
            filterSerivce.ReCaculateSinglePageDatas(vm);

            singlePageDatas = vm.SinglePageDatas;
            Assert.IsTrue(singlePageDatas.Count() == 5, "total 5 pages as output");
            var index = singlePageDatas.IndexOf(singlePageDatas.FirstOrDefault(x => x.IsCurrentPageSelected));
            Assert.IsTrue(index == 4, "incorrect page is seleted");
        }
Exemplo n.º 3
0
        public void GenericPagingTest()
        {
            var query = Persons.AsQueryable();
            var vm = new SortingFilterModel { PageSize = 3 };
            var filterService = new FilterService(new ExpressionBuilder(), new SortingService(new ExpressionBuilder()));

            var resultSet = filterService.GenericPaging(query, vm.AsSortingFilterModel);

            //assert the page total
            Assert.IsTrue(vm.PageTotal == 4, "page totle calculation is incorrect");
            //assert the content within page 1, no need to default orderby since it only do take no skip
            Assert.IsTrue(resultSet.Select(x => x.Name).Contains("joe"), "the paging result contains incorrect elment");
            Assert.IsTrue(resultSet.Select(x => x.Name).Contains("kelly"), "the paging result contains incorrect elment");
            Assert.IsTrue(resultSet.Select(x => x.Name).Contains("nancy"), "the paging result contains incorrect elment");

            //set pageindex other than 1, run the function again, test if orderby + skip + take returns the correct resultset
            vm.PageIndex = 3;
            vm.SortingColumnCurrent = "BornDate";
            vm.SortingOrderCurrent = SortingOrder.Ascending;
            resultSet = filterService.GenericPaging(query, vm.AsSortingFilterModel);
            var compareList = Persons.OrderByDescending(x => x.BornDate).Skip(6).Take(3).ToList();
            Assert.IsTrue(resultSet.ToList()[0].PersonID == compareList[0].PersonID);
            Assert.IsTrue(resultSet.ToList()[1].PersonID == compareList[1].PersonID);
            Assert.IsTrue(resultSet.ToList()[2].PersonID == compareList[2].PersonID);
        }
Exemplo n.º 4
0
        public void GenericPagingWhereMixTest()
        {
            //setup view model
            var vm = new SortingFilterModel();
            vm.SortingColumnCurrent = "BornDate";
            vm.SortingOrderCurrent = SortingOrder.Ascending;
            var filterService = new FilterService(new ExpressionBuilder(), new SortingService(new ExpressionBuilder()));
            var query = Persons.AsQueryable();
            //total 10, 4 pages, set index to 4
            vm.PageIndex = 4;
            query = query.Where(x => x.HasSupernaturalAbility == true);

            var resultSet = filterService.GenericPaging(query, vm.AsSortingFilterModel);
            //test1 the pageindex should have been resetted to 1
            Assert.IsTrue(vm.PageIndex == 1, "the where clause will make pagetotal 2, page index should be resetted to 1");
            //test2 navigate to page 2
            vm.PageIndex = 2;
            resultSet = filterService.GenericPaging(query, vm.AsSortingFilterModel);
            Assert.IsTrue(vm.PageIndex == 2);
        }