Skip to content

Commit

Permalink
switched PagedList to be one-based rather than zero-based and removed…
Browse files Browse the repository at this point in the history
… the PageIndex property from everything. all tests pass but PagedList.Mvc hasnt been updated
  • Loading branch information
troygoode committed Aug 16, 2011
1 parent 42945f9 commit e3db46f
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 134 deletions.
6 changes: 3 additions & 3 deletions src/PagedList.Tests/PagedListExample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ public static void Main()
// create a list of integers from 1 to 200
var list = Enumerable.Range(1, 200);

var firstPage = list.ToPagedList(0, 20); // first page, page size = 20
var firstPage = list.ToPagedList(1, 20); // first page, page size = 20
Console.WriteLine("Is first page? {0}", firstPage.IsFirstPage); // true
Console.WriteLine("Is last page? {0}", firstPage.IsLastPage); // false
Console.WriteLine("First value on page? {0}", firstPage[0]); // 1
Console.WriteLine();

var anotherPage = list.ToPagedList(4, 20); // fifth page, page size = 20
var anotherPage = list.ToPagedList(5, 20); // fifth page, page size = 20
Console.WriteLine("Is first page? {0}", anotherPage.IsFirstPage); // false
Console.WriteLine("Is last page? {0}", anotherPage.IsLastPage); // false
Console.WriteLine("Total integers in list? {0}", anotherPage.TotalItemCount); // 200
Console.WriteLine("Integers on this page? {0}", anotherPage.Count); // 20
Console.WriteLine("First value on page? {0}", anotherPage[0]); // 81
Console.WriteLine();

var lastPage = list.ToPagedList(9, 20); // last (tenth) page, page size = 20
var lastPage = list.ToPagedList(10, 20); // last (tenth) page, page size = 20
Console.WriteLine("Is first page? {0}", lastPage.IsFirstPage); // false
Console.WriteLine("Is last page? {0}", lastPage.IsLastPage); // true
Console.WriteLine("First value on page? {0}", lastPage[0]); // 181
Expand Down
112 changes: 42 additions & 70 deletions src/PagedList.Tests/PagedListFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ public class PagedListFacts
public void Null_Data_Set_Doesnt_Throw_Exception()
{
//act
Assert.ThrowsDelegate act = () => new PagedList<object>(null, 0, 10);
Assert.ThrowsDelegate act = () => new PagedList<object>(null, 1, 10);

//assert
Assert.DoesNotThrow(act);
}

[Fact]
public void PageIndex_Below_Zero_Throws_ArgumentOutOfRange()
public void PageNumber_Below_One_Throws_ArgumentOutOfRange()
{
//arrange
var data = new[] {1, 2, 3};

//act
Assert.ThrowsDelegate act = () => data.ToPagedList(-1, 1);
Assert.ThrowsDelegate act = () => data.ToPagedList(0, 1);

//assert
Assert.Throws<ArgumentOutOfRangeException>(act);
Expand All @@ -51,7 +51,7 @@ public void PageSize_Below_One_Throws_ArgumentOutOfRange()
var data = new[] {1, 2, 3};

//act
Assert.ThrowsDelegate act = () => data.ToPagedList(0, 0);
Assert.ThrowsDelegate act = () => data.ToPagedList(1, 0);

//assert
Assert.Throws<ArgumentOutOfRangeException>(act);
Expand All @@ -61,7 +61,7 @@ public void PageSize_Below_One_Throws_ArgumentOutOfRange()
public void Null_Data_Set_Doesnt_Return_Null()
{
//act
var pagedList = new PagedList<object>(null, 0, 10);
var pagedList = new PagedList<object>(null, 1, 10);

//assert
Assert.NotNull(pagedList);
Expand All @@ -71,7 +71,7 @@ public void Null_Data_Set_Doesnt_Return_Null()
public void Null_Data_Set_Returns_Zero_Pages()
{
//act
var pagedList = new PagedList<object>(null, 0, 10);
var pagedList = new PagedList<object>(null, 1, 10);

//assert
Assert.Equal(0, pagedList.PageCount);
Expand All @@ -84,20 +84,20 @@ public void Zero_Item_Data_Set_Returns_Zero_Pages()
var data = new List<object>();

//act
var pagedList = data.ToPagedList(0, 10);
var pagedList = data.ToPagedList(1, 10);

//assert
Assert.Equal(0, pagedList.PageCount);
}

[Fact]
public void DataSet_Of_One_Through_Five_PageSize_Of_Two_PageIndex_Of_One_First_Item_Is_Three()
public void DataSet_Of_One_Through_Five_PageSize_Of_Two_PageNumber_Of_Two_First_Item_Is_Three()
{
//arrange
var data = new[] {1, 2, 3, 4, 5};

//act
var pagedList = data.ToPagedList(1, 2);
var pagedList = data.ToPagedList(2, 2);

//assert
Assert.Equal(3, pagedList[0]);
Expand All @@ -110,33 +110,20 @@ public void TotalCount_Is_Preserved()
var data = new[] {1, 2, 3, 4, 5};

//act
var pagedList = data.ToPagedList(1, 2);
var pagedList = data.ToPagedList(2, 2);

//assert
Assert.Equal(5, pagedList.TotalItemCount);
}

[Fact]
public void PageIndex_Is_Preserved()
{
//arrange
var data = new[] {1, 2, 3, 4, 5};

//act
var pagedList = data.ToPagedList(1, 2);

//assert
Assert.Equal(1, pagedList.PageIndex);
}

[Fact]
public void PageSize_Is_Preserved()
{
//arrange
var data = new[] {1, 2, 3, 4, 5};

//act
var pagedList = data.ToPagedList(1, 2);
var pagedList = data.ToPagedList(2, 2);

//assert
Assert.Equal(2, pagedList.PageSize);
Expand All @@ -149,183 +136,168 @@ public void Data_Is_Filtered_By_PageSize()
var data = new[] {1, 2, 3, 4, 5};

//act
var pagedList = data.ToPagedList(1, 2);
var pagedList = data.ToPagedList(2, 2);

//assert
Assert.Equal(2, pagedList.Count);

//### related test below

//act
pagedList = data.ToPagedList(2, 2);
pagedList = data.ToPagedList(3, 2);

//assert
Assert.Equal(1, pagedList.Count);
}

[Fact]
public void DataSet_OneThroughSix_PageSize_Three_PageIndex_Zero_FirstValue_Is_One()
public void DataSet_OneThroughSix_PageSize_Three_PageNumber_One_FirstValue_Is_One()
{
//arrange
var data = new[] { 1, 2, 3, 4, 5, 6 };

//act
var pagedList = data.ToPagedList(0, 3);
var pagedList = data.ToPagedList(1, 3);

//assert
Assert.Equal(1, pagedList[0]);
}

[Fact]
public void DataSet_OneThroughThree_PageSize_One_PageIndex_Two_HasNextPage_False()
public void DataSet_OneThroughThree_PageSize_One_PageNumber_Three_HasNextPage_False()
{
//arrange
var data = new[] {1, 2, 3};

//act
var pagedList = data.ToPagedList(2, 1);
var pagedList = data.ToPagedList(3, 1);

//assert
Assert.Equal(false, pagedList.HasNextPage);
}

[Fact]
public void DataSet_OneThroughThree_PageSize_One_PageIndex_Two_IsLastPage_True()
public void DataSet_OneThroughThree_PageSize_One_PageNumber_Three_IsLastPage_True()
{
//arrange
var data = new[] {1, 2, 3};

//act
var pagedList = data.ToPagedList(2, 1);
var pagedList = data.ToPagedList(3, 1);

//assert
Assert.Equal(true, pagedList.IsLastPage);
}

[Fact]
public void DataSet_OneAndTwo_PageSize_One_PageIndex_One_FirstValue_Is_Two()
public void DataSet_OneAndTwo_PageSize_One_PageNumber_Two_FirstValue_Is_Two()
{
//arrange
var data = new[] { 1, 2 };

//act
var pagedList = data.ToPagedList(1, 1);
var pagedList = data.ToPagedList(2, 1);

//assert
Assert.Equal(2, pagedList[0]);
}

[Fact]
public void DataSet_OneThroughTen_PageSize_Five_PageIndex_Zero_FirstItemOnPage_Is_One()
public void DataSet_OneThroughTen_PageSize_Five_PageNumber_One_FirstItemOnPage_Is_One()
{
//arrange
var data = Enumerable.Range(1, 10);

//act
var pagedList = data.ToPagedList(0, 5);
var pagedList = data.ToPagedList(1, 5);

//assert
Assert.Equal(1, pagedList.FirstItemOnPage);
}

[Fact]
public void DataSet_OneThroughTen_PageSize_Five_PageIndex_One_FirstItemOnPage_Is_Six()
public void DataSet_OneThroughTen_PageSize_Five_PageNumber_Two_FirstItemOnPage_Is_Six()
{
//arrange
var data = Enumerable.Range(1, 10);

//act
var pagedList = data.ToPagedList(1, 5);
var pagedList = data.ToPagedList(2, 5);

//assert
Assert.Equal(6, pagedList.FirstItemOnPage);
}

[Fact]
public void DataSet_OneThroughTen_PageSize_Five_PageIndex_Zero_LastItemOnPage_Is_Five()
public void DataSet_OneThroughTen_PageSize_Five_PageNumber_One_LastItemOnPage_Is_Five()
{
//arrange
var data = Enumerable.Range(1, 10);

//act
var pagedList = data.ToPagedList(0, 5);
var pagedList = data.ToPagedList(1, 5);

//assert
Assert.Equal(5, pagedList.LastItemOnPage);
}

[Fact]
public void DataSet_OneThroughTen_PageSize_Five_PageIndex_One_LastItemOnPage_Is_Ten()
public void DataSet_OneThroughTen_PageSize_Five_PageNumber_Two_LastItemOnPage_Is_Ten()
{
//arrange
var data = Enumerable.Range(1, 10);

//act
var pagedList = data.ToPagedList(1, 5);
var pagedList = data.ToPagedList(2, 5);

//assert
Assert.Equal(10, pagedList.LastItemOnPage);
}

[Fact]
public void DataSet_OneThroughEight_PageSize_Five_PageIndex_One_LastItemOnPage_Is_Eight()
public void DataSet_OneThroughEight_PageSize_Five_PageNumber_Two_LastItemOnPage_Is_Eight()
{
//arrange
var data = Enumerable.Range(1, 8);

//act
var pagedList = data.ToPagedList(1, 5);
var pagedList = data.ToPagedList(2, 5);

//assert
Assert.Equal(8, pagedList.LastItemOnPage);
}

[Theory]
[InlineData(new[] {1, 2, 3}, 0, 1)]
[InlineData(new[] {1, 2, 3}, 1, 2)]
[InlineData(new[] {1, 2, 3}, 2, 3)]
public void Theory_PageNumber_Is_PageIndex_Plus_One(int[] integers, int pageIndex, int expectedPageNumber)
{
//arrange
var data = integers;

//act
var pagedList = data.ToPagedList(pageIndex, 1);

//assert
Assert.Equal(expectedPageNumber, pagedList.PageNumber);
}

[Theory]
[InlineData(new[] {1, 2, 3}, 0, 1, false, true)]
[InlineData(new[] {1, 2, 3}, 1, 1, true, true)]
[InlineData(new[] {1, 2, 3}, 2, 1, true, false)]
public void Theory_HasPreviousPage_And_HasNextPage_Are_Correct(int[] integers, int pageIndex, int pageSize,
[InlineData(new[] {1, 2, 3}, 1, 1, false, true)]
[InlineData(new[] {1, 2, 3}, 2, 1, true, true)]
[InlineData(new[] {1, 2, 3}, 3, 1, true, false)]
public void Theory_HasPreviousPage_And_HasNextPage_Are_Correct(int[] integers, int pageNumber, int pageSize,
bool expectedHasPrevious, bool expectedHasNext)
{
//arrange
var data = integers;

//act
var pagedList = data.ToPagedList(pageIndex, pageSize);
var pagedList = data.ToPagedList(pageNumber, pageSize);

//assert
Assert.Equal(expectedHasPrevious, pagedList.HasPreviousPage);
Assert.Equal(expectedHasNext, pagedList.HasNextPage);
}

[Theory]
[InlineData(new[] {1, 2, 3}, 0, 1, true, false)]
[InlineData(new[] {1, 2, 3}, 1, 1, false, false)]
[InlineData(new[] {1, 2, 3}, 2, 1, false, true)]
public void Theory_IsFirstPage_And_IsLastPage_Are_Correct(int[] integers, int pageIndex, int pageSize,
[InlineData(new[] {1, 2, 3}, 1, 1, true, false)]
[InlineData(new[] {1, 2, 3}, 2, 1, false, false)]
[InlineData(new[] {1, 2, 3}, 3, 1, false, true)]
public void Theory_IsFirstPage_And_IsLastPage_Are_Correct(int[] integers, int pageNumber, int pageSize,
bool expectedIsFirstPage, bool expectedIsLastPage)
{
//arrange
var data = integers;

//act
var pagedList = data.ToPagedList(pageIndex, pageSize);
var pagedList = data.ToPagedList(pageNumber, pageSize);

//assert
Assert.Equal(expectedIsFirstPage, pagedList.IsFirstPage);
Expand All @@ -345,7 +317,7 @@ public void Theory_PageCount_Is_Correct(int[] integers, int pageSize, int expect
var data = integers;

//act
var pagedList = data.ToPagedList(0, pageSize);
var pagedList = data.ToPagedList(1, pageSize);

//assert
Assert.Equal(expectedNumberOfPages, pagedList.PageCount);
Expand Down
10 changes: 5 additions & 5 deletions src/PagedList.Tests/StaticPagedListExample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ public static void Main(string[] args)
// create a list of integers from 1 to 20
var list = Enumerable.Range(1, 20);

var firstPage = new StaticPagedList<int>(list, 0, 20, 100); // first page
var firstPage = new StaticPagedList<int>(list, 1, 4, 20); // first page
Console.WriteLine("Is first page? {0}", firstPage.IsFirstPage); // true
Console.WriteLine("Is last page? {0}", firstPage.IsLastPage); // false
Console.WriteLine("First value on page? {0}", firstPage[0]); // 1
Console.WriteLine();

var middlePage = new StaticPagedList<int>(list, 2, 20, 100); // third page, same values
var middlePage = new StaticPagedList<int>(list, 3, 4, 20); // third page, same values
Console.WriteLine("Is first page? {0}", middlePage.IsFirstPage); // false
Console.WriteLine("Is last page? {0}", middlePage.IsLastPage); // false
Console.WriteLine("First value on page? {0}", middlePage[0]); // 1
Console.WriteLine("First value on page? {0}", middlePage[0]); // 9
Console.WriteLine();

var lastPage = new StaticPagedList<int>(list, 4, 20, 100); // fifth page, same values
var lastPage = new StaticPagedList<int>(list, 5, 4, 20); // fifth page, same values
Console.WriteLine("Is first page? {0}", lastPage.IsFirstPage); // false
Console.WriteLine("Is last page? {0}", lastPage.IsLastPage); // true
Console.WriteLine("First value on page? {0}", lastPage[0]); // 1
Console.WriteLine("First value on page? {0}", lastPage[0]); // 17
Console.ReadKey(false);
}
}
Expand Down
Loading

0 comments on commit e3db46f

Please sign in to comment.