Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
    public void Creates_Default_Values()
    {
        // Arrange
        var defaultValues = new PagingValues();

        // Act
        var result = new PagedList <int>();

        // Assert
        Assert.Equal(defaultValues, result.Values);
    }
Example #4
0
    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);
    }
Example #5
0
    /// <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));
    }
Example #6
0
    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);
    }