X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FPaginationTest.kt;h=3ce20ceb6fbb7951c27822c341ccb376b8c41da6;hb=8a6c40841e5c9b2be4ed4fc496ccd07ad63c0db7;hp=9a1153c6c3f45ac1a0a0d892852fc4962f8bcf92;hpb=ac6576e72155b3691ce6e5c56ee0c57eb9ac08c6;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/utils/PaginationTest.kt b/src/test/kotlin/net/pterodactylus/sone/utils/PaginationTest.kt index 9a1153c..3ce20ce 100644 --- a/src/test/kotlin/net/pterodactylus/sone/utils/PaginationTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/utils/PaginationTest.kt @@ -1,5 +1,6 @@ package net.pterodactylus.sone.utils +import net.pterodactylus.sone.test.hasPages import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.contains import org.hamcrest.Matchers.equalTo @@ -14,13 +15,19 @@ class PaginationTest { private val pagination = Pagination(items, 2) @Test + fun `pagination can be created from iterable`() { + val pagination = listOf(1, 2, 3, 4, 5).asIterable().paginate(2) + assertThat(pagination, hasPages(3).isOnPage(0)) + } + + @Test fun `new pagination is at page 0`() { assertThat(pagination.page, equalTo(0)) } @Test fun `new pagination is at page number 1`() { - assertThat(pagination.pageNumber, equalTo(1)) + assertThat(pagination.pageNumber, equalTo(1)) } @Test @@ -43,98 +50,98 @@ class PaginationTest { @Test fun `the page count is returned correctly`() { - assertThat(pagination.pageCount, equalTo(3)) + assertThat(pagination.pageCount, equalTo(3)) } @Test fun `page size is returned correctly`() { - assertThat(pagination.pageSize, equalTo(2)) + assertThat(pagination.pageSize, equalTo(2)) } @Test fun `a page size of less than 1 is set to 1`() { - pagination.pageSize = 0 + pagination.pageSize = 0 assertThat(pagination.pageSize, equalTo(1)) } @Test fun `changing page size sets new page correctly`() { pagination.page = 1 - pagination.pageSize = 1 + pagination.pageSize = 1 assertThat(pagination.page, equalTo(2)) } @Test fun `changing page size to very large returns to page 0`() { - pagination.page = 1 + pagination.page = 1 pagination.pageSize = 20 assertThat(pagination.page, equalTo(0)) } @Test fun `item count for current page is page size of first page`() { - assertThat(pagination.itemCount, equalTo(2)) + assertThat(pagination.itemCount, equalTo(2)) } @Test fun `item count for last page is 1`() { - pagination.page = 2 + pagination.page = 2 assertThat(pagination.itemCount, equalTo(1)) } @Test fun `items on first page are returned correctly`() { - assertThat(pagination.items, contains(1, 2)) + assertThat(pagination.items, contains(1, 2)) } @Test fun `items on last page are returned correctly`() { - pagination.page = 2 + pagination.page = 2 assertThat(pagination.items, contains(5)) } @Test fun `pagination is first on first page`() { - assertThat(pagination.isFirst, equalTo(true)) + assertThat(pagination.isFirst, equalTo(true)) } @Test fun `pagination is not first on second page`() { pagination.page = 1 - assertThat(pagination.isFirst, equalTo(false)) + assertThat(pagination.isFirst, equalTo(false)) } @Test fun `pagination is not first on last page`() { pagination.page = 2 - assertThat(pagination.isFirst, equalTo(false)) + assertThat(pagination.isFirst, equalTo(false)) } @Test fun `pagination is not last on first page`() { - assertThat(pagination.isLast, equalTo(false)) + assertThat(pagination.isLast, equalTo(false)) } @Test fun `pagination is not last on second page`() { pagination.page = 1 - assertThat(pagination.isLast, equalTo(false)) + assertThat(pagination.isLast, equalTo(false)) } @Test fun `pagination is last on last page`() { pagination.page = 2 - assertThat(pagination.isLast, equalTo(true)) + assertThat(pagination.isLast, equalTo(true)) } @Test fun `pagination is necessary for three pages`() { - assertThat(pagination.isNecessary, equalTo(true)) + assertThat(pagination.isNecessary, equalTo(true)) } @Test fun `pagination is necessary for two pages`() { - pagination.pageSize = 4 + pagination.pageSize = 4 assertThat(pagination.isNecessary, equalTo(true)) } @@ -147,7 +154,7 @@ class PaginationTest { @Test fun `previous page is returned correctly for second page`() { pagination.page = 1 - assertThat(pagination.previousPage, equalTo(0)) + assertThat(pagination.previousPage, equalTo(0)) } @Test @@ -158,23 +165,23 @@ class PaginationTest { @Test fun `next page is returned correctly for first page`() { - assertThat(pagination.nextPage, equalTo(1)) + assertThat(pagination.nextPage, equalTo(1)) } @Test fun `next page is returned correctly for second page`() { pagination.page = 1 - assertThat(pagination.nextPage, equalTo(2)) + assertThat(pagination.nextPage, equalTo(2)) } @Test fun `last page is returned correctly`() { - assertThat(pagination.lastPage, equalTo(2)) + assertThat(pagination.lastPage, equalTo(2)) } @Test fun `iterator returns items on the current page`() { - assertThat(pagination.iterator().asSequence().toList(), contains(1, 2)) + assertThat(pagination.iterator().asSequence().toList(), contains(1, 2)) } }