/**
  * 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);
 }