Skip to content

Commit d7cb85f

Browse files
committed
feat: add getPreviousPageNumber() and getNextPageNumber()
1 parent c7d672e commit d7cb85f

2 files changed

Lines changed: 84 additions & 0 deletions

File tree

system/Pager/PagerRenderer.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,4 +431,24 @@ public function getLastPageNumber(): int
431431
{
432432
return $this->last;
433433
}
434+
435+
/**
436+
* Returns the previous page number.
437+
*
438+
* @return integer|null
439+
*/
440+
public function getPreviousPageNumber(): ?int
441+
{
442+
return ($this->current === 1) ? null : $this->current - 1;
443+
}
444+
445+
/**
446+
* Returns the next page number.
447+
*
448+
* @return integer|null
449+
*/
450+
public function getNextPageNumber(): ?int
451+
{
452+
return ($this->current === $this->pageCount) ? null : $this->current + 1;
453+
}
434454
}

tests/system/Pager/PagerRendererTest.php

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,4 +595,68 @@ public function testGetPageNumberSetSurroundCount()
595595
$this->assertEquals(5, $pager->getCurrentPageNumber());
596596
$this->assertEquals(7, $pager->getLastPageNumber());
597597
}
598+
599+
public function testGetPreviousPageNumber()
600+
{
601+
$uri = $this->uri;
602+
$details = [
603+
'uri' => $uri,
604+
'pageCount' => 10,
605+
'currentPage' => 5,
606+
'total' => 100,
607+
'segment' => 2,
608+
];
609+
$pager = new PagerRenderer($details);
610+
$pager->setSurroundCount(2);
611+
612+
$this->assertEquals(4, $pager->getPreviousPageNumber());
613+
}
614+
615+
public function testGetPreviousPageNumberNull()
616+
{
617+
$uri = $this->uri;
618+
$details = [
619+
'uri' => $uri,
620+
'pageCount' => 10,
621+
'currentPage' => 1,
622+
'total' => 100,
623+
'segment' => 2,
624+
];
625+
$pager = new PagerRenderer($details);
626+
$pager->setSurroundCount(2);
627+
628+
$this->assertEquals(null, $pager->getPreviousPageNumber());
629+
}
630+
631+
public function testGetNextPageNumber()
632+
{
633+
$uri = $this->uri;
634+
$details = [
635+
'uri' => $uri,
636+
'pageCount' => 10,
637+
'currentPage' => 5,
638+
'total' => 100,
639+
'segment' => 2,
640+
];
641+
$pager = new PagerRenderer($details);
642+
$pager->setSurroundCount(2);
643+
644+
$this->assertEquals(6, $pager->getNextPageNumber());
645+
}
646+
647+
public function testGetNextPageNumberNull()
648+
{
649+
$uri = $this->uri;
650+
$details = [
651+
'uri' => $uri,
652+
'pageCount' => 10,
653+
'currentPage' => 10,
654+
'total' => 100,
655+
'segment' => 2,
656+
];
657+
$pager = new PagerRenderer($details);
658+
$pager->setSurroundCount(2);
659+
660+
$this->assertEquals(null, $pager->getNextPageNumber());
661+
}
598662
}

0 commit comments

Comments
 (0)