/** * Test basic methods. * @covers Rentalhost\VanillaPagination\Pagination::__construct * @covers Rentalhost\VanillaPagination\Pagination::getClamp * @covers Rentalhost\VanillaPagination\Pagination::getCurrentPage * @covers Rentalhost\VanillaPagination\Pagination::setCurrentPage * @covers Rentalhost\VanillaPagination\Pagination::getTotalItems * @covers Rentalhost\VanillaPagination\Pagination::getItemsPerPage * @covers Rentalhost\VanillaPagination\Pagination::getTotalPages * @covers Rentalhost\VanillaPagination\Pagination::getCurrentPageOffsets * @covers Rentalhost\VanillaPagination\Pagination::hasPage * @covers Rentalhost\VanillaPagination\Pagination::hasPages */ public function testBasic() { $pagination = new Pagination(200, 20); // Initial values. static::assertSame(1, $pagination->getCurrentPage()); static::assertSame(200, $pagination->getTotalItems()); static::assertSame(20, $pagination->getItemsPerPage()); static::assertSame(10, $pagination->getTotalPages()); static::assertTrue($pagination->hasPages()); $pageOffsets = $pagination->getCurrentPageOffsets(); static::assertSame(1, $pageOffsets->firstItem); static::assertSame(20, $pageOffsets->lastItem); // Check if all pages exists, correctly. for ($i = 1; $i <= 10; $i++) { static::assertTrue($pagination->hasPage($i)); } // Advance to next page. static::assertTrue($pagination->setCurrentPage(2)); static::assertSame(2, $pagination->getCurrentPage()); $pageOffsets = $pagination->getCurrentPageOffsets(); static::assertSame(21, $pageOffsets->firstItem); static::assertSame(40, $pageOffsets->lastItem); // Advance to last page. static::assertTrue($pagination->setCurrentPage(10)); static::assertSame(10, $pagination->getCurrentPage()); $pageOffsets = $pagination->getCurrentPageOffsets(); static::assertSame(181, $pageOffsets->firstItem); static::assertSame(200, $pageOffsets->lastItem); // Attempts to navigate to a page beyond the first. static::assertFalse($pagination->setCurrentPage(0)); static::assertSame(1, $pagination->getCurrentPage()); $pageOffsets = $pagination->getCurrentPageOffsets(); static::assertSame(1, $pageOffsets->firstItem); static::assertSame(20, $pageOffsets->lastItem); // Attempts to navigate to a page beyond the last. static::assertFalse($pagination->setCurrentPage(11)); static::assertSame(10, $pagination->getCurrentPage()); $pageOffsets = $pagination->getCurrentPageOffsets(); static::assertSame(181, $pageOffsets->firstItem); static::assertSame(200, $pageOffsets->lastItem); }