public void Correct_Upper_And_Lower_Pages(ulong page, ulong items, ulong lowerPage, ulong upperPage) { // Arrange var values = new PagingValues(items: items, page: page); // Act // Assert Assert.Equal(lowerPage, values.LowerPage); Assert.Equal(upperPage, values.UpperPage); }
public void Correct_First_And_Last_Items(ulong page, ulong firstItem, ulong lastItem) { // Arrange var values = new PagingValues(items: 25, page: page); // Act // Assert Assert.Equal(firstItem, values.FirstItem); Assert.Equal(lastItem, values.LastItem); }
public void Creates_Default_Values() { // Arrange var defaultValues = new PagingValues(); // Act var result = new PagedList <int>(); // Assert Assert.Equal(defaultValues, result.Values); }
public void No_Page_Or_Items_Current_Page_Equals_1() { // Arrange var pageNoItems = new PagingValues(items: 0, page: 1); var itemsNoPage = new PagingValues(items: 1, page: 0); // Act // Assert Assert.Equal(1U, pageNoItems.Page); Assert.Equal(1U, itemsNoPage.Page); }
/// <summary> /// Convert a collection to a paged list /// </summary> /// <typeparam name="T">Item type</typeparam> /// <param name="this">Collection</param> /// <param name="page">Current page</param> /// <param name="itemsPer">Items per page</param> /// <param name="pagesPer">Pages per screen</param> public static IPagedList <T> ToPagedList <T>( this IEnumerable <T> @this, ulong page, ulong itemsPer, ulong pagesPer ) { // Return empty list if ([email protected]()) { return(new PagedList <T>()); } // Calculate values and get items var values = new PagingValues(items: (ulong)@this.Count(), page: page, itemsPer: itemsPer, pagesPer: pagesPer); var items = @this.Skip(values.Skip).Take(values.Take); // Create new paged list with only the necessary items return(new PagedList <T>(values, items)); }
public void Creates_New_PagedList_With_Updated_PagesPer() { // Arrange var items = 400; var paging = new PagingValues( items: (ulong)items, page: Rnd.NumberF.GetUInt64(1, 20), itemsPer: Rnd.NumberF.GetUInt64(5, 10), pagesPer: Rnd.NumberF.GetUInt64(5, 15) ); var list = new PagedList <int>(paging, Enumerable.Range(0, items)); var newPagesPer = paging.PagesPer + 1; // Act var result = list.WithPagesPer(newPagesPer); // Assert Assert.NotSame(list, result); Assert.NotEqual(paging.PagesPer, result.Values.PagesPer); }