public void it_should_order_in_descending_mode_when_the_order_fiels_is_not_null_and_the_order_direction_is_Descending() { var sut = new QueryPageAndSortingBaseMock(); var items = Builder<Movie>.CreateListOfSize(10).Build().AsQueryable(); var expectedItems = items.OrderByDescending(x => x.ID); var methodInfo = sut.GetType().GetMethod("ApplyPagingAndSorting", BindingFlags.Instance | BindingFlags.NonPublic); var pagingInfo = new PagingAndSortingInfo(orderByField: "ID", orderDirection: OrderDirection.Descending); var res = (IQueryable<Movie>)methodInfo.Invoke(sut, new object[] { items, pagingInfo }); res.Should().NotBeNull() .And.HaveCount(items.Count()) .And.ContainInOrder(expectedItems); }
public void it_should_apply_the_default_order_when_the_order_field_is_null_or_empty() { var sut = new QueryPageAndSortingBaseMock(); var items = Builder<Movie>.CreateListOfSize(10).Build().AsQueryable(); var expectedItems = items.OrderByDescending(x => x.Title); var methodInfo = sut.GetType().GetMethod("ApplyPagingAndSorting", BindingFlags.Instance | BindingFlags.NonPublic); var pagingInfo = new PagingAndSortingInfo(orderByField: string.Empty); var res = (IQueryable<Movie>)methodInfo.Invoke(sut, new object[] { items, pagingInfo }); res.Should().NotBeNull() .And.HaveCount(items.Count()) .And.ContainInOrder(expectedItems); }
public void it_should_paginate_the_results() { var sut = new QueryPageAndSortingBaseMock(); var page = 3; var pageSize = 4; var pageIndex = page - 1; var pagingInfo = new PagingAndSortingInfo(orderByField: "Title", orderDirection: OrderDirection.Descending, page: page, pageSize: pageSize); var items = Builder<Movie>.CreateListOfSize(20).Build().AsQueryable(); var expectedItems = items.OrderByDescending(x => x.Title).Skip(pageIndex * pageSize).Take(pageSize); var methodInfo = sut.GetType().GetMethod("ApplyPagingAndSorting", BindingFlags.Instance | BindingFlags.NonPublic); var res = (IQueryable<Movie>)methodInfo.Invoke(sut, new object[] { items, pagingInfo }); res.Should().NotBeNull() .And.HaveCount(pageSize) .And.ContainInOrder(expectedItems); }