public function testRealExample() { $pagination = new Pagination(); $pagination->setTotalItems(105)->setItemsPerPage(10)->setUri("/posts?page=5"); $this->assertSame(5, $pagination->getPage()); $this->assertSame(11, $pagination->getTotalPages()); $pages = $pagination->toArray(); // always should have "prev" and "next" $this->assertArrayHasKey("prev", $pages); $this->assertArrayHasKey("next", $pages); // previous | first | 4 before | selected | 4 after | last | next $this->assertSame(13, count($pages)); // Test with proximity 3 $pagination->setProximity(3); $pages = $pagination->toArray(); $this->assertSame(11, count($pages)); // Test with proximity 2 $pagination->setProximity(2); $pages = $pagination->toArray(); $this->assertSame(9, count($pages)); // Test with proximity 1 $pagination->setProximity(1); $pages = $pagination->toArray(); $this->assertSame(7, count($pages)); // Test with proximity 0 // previous | first | current | last | next $pagination->setProximity(0); $pages = $pagination->toArray(); $this->assertSame(5, count($pages)); }