public void GivenNullRequestModel_WhenCreateResultSet_ThenThrowException()
        {
            TestClientDataTable target = CreateTarget(1, "asc");
            IQueryable <string> items = new[] { "hi", "yo", "sup" }.AsQueryable();

            target.ExpectException <ArgumentNullException>(() => target.CreateResultSet(items, null));
        }
        public void GivenItems_AndHasSortNotAscending_WhenApplySort_ThenItemsSortedDescending()
        {
            TestClientDataTable target = CreateTarget(1, "not 'asc'");
            IQueryable <string> items = new[] { "hi", "yo", "sup" }.AsQueryable();

            var actual = target.ApplySort(items);

            CollectionAssert.AreEqual(new[] { "yo", "sup", "hi" }, actual.ToList());
        }
        public void GivenItems_AndHasSortFalse_WhenApplySort_ThenItemsUnchanged()
        {
            TestClientDataTable target = CreateTarget(1, null);
            IQueryable <string> items = new[] { "hi", "yo", "sup" }.AsQueryable();

            var actual = target.ApplySort(items);

            CollectionAssert.AreEqual(new[] { "hi", "yo", "sup" }, actual.ToList());
        }
        public void GivenItems_WhenApplySort_ThenItemsGetSortedBySortSelector()
        {
            TestClientDataTable target = CreateTarget(1, "asc");
            IQueryable <string> items = new[] { "hi", "yo", "sup" }.AsQueryable();

            var actual = target.ApplySort(items);

            CollectionAssert.AreEqual(new[] { "hi", "sup", "yo" }, actual.ToList());
        }
        public void GivenItems_WhenApplyFilters_ThenItemsGetFilteredByPredicateApplied()
        {
            TestClientDataTable target = CreateTarget(1, "asc");
            IQueryable <string> items = new[] { "hi", "yo", "sup" }.AsQueryable();

            var actual = target.ApplyFilters(items);

            CollectionAssert.AreEqual(new[] { "yo" }, actual.ToList());
        }
        public void GivenItems_AndDisplayLengthSet_WhenCreateResultSet_ThenItemsCountDoesNotExceedDisplayLength()
        {
            TestClientDataTable   target = CreateTarget(1, "asc");
            IQueryable <string>   items = new[] { "hi", "yo", "sup" }.AsQueryable();
            DataTableRequestModel requestModel = new DataTableRequestModel {
                iDisplayLength = 2
            };

            var actual = target.CreateResultSet(items, requestModel);

            actual.Cast <string[]>().ToList().AssertItemsEqual(new[] { new[] { "2", "hi" }, new[] { "2", "yo" } });
        }
        public void GivenItems_WhenCreateResultSet_ThenItemsGetSelectedByColumnArraySelector()
        {
            TestClientDataTable   target = CreateTarget(1, "asc");
            IQueryable <string>   items = new[] { "hi", "yo", "sup" }.AsQueryable();
            DataTableRequestModel requestModel = new DataTableRequestModel {
                iDisplayLength = -1
            };

            var actual = target.CreateResultSet(items, requestModel);

            actual.Cast <string[]>().ToList().AssertItemsEqual(new[] { new[] { "2", "hi" }, new[] { "2", "yo" }, new[] { "3", "sup" } });
        }
        public void GivenRequestContainsSortColumnAndSortDirection_WhenConstruct_ThenHasSortIsTrue()
        {
            TestClientDataTable target = CreateTarget(1, "asc");

            Assert.IsTrue(target.HasSort);
        }