‪TYPO3CMS  ‪main
SimplePaginationTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
23 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
24 
25 final class ‪SimplePaginationTest extends UnitTestCase
26 {
31  protected ‪$paginator = [];
32 
33  protected function ‪setUp(): void
34  {
35  parent::setUp();
36 
37  $this->paginator = new ‪ArrayPaginator(range(1, 14, 1));
38  }
39 
40  #[Test]
42  {
43  $pagination = new ‪SimplePagination($this->paginator);
44 
45  self::assertSame(1, $pagination->getStartRecordNumber());
46  self::assertSame(10, $pagination->getEndRecordNumber());
47  self::assertSame(1, $pagination->getFirstPageNumber());
48  self::assertSame(2, $pagination->getLastPageNumber());
49  self::assertNull($pagination->getPreviousPageNumber());
50  self::assertSame(2, $pagination->getNextPageNumber());
51  self::assertSame([1, 2], $pagination->getAllPageNumbers());
52  }
53 
54  #[Test]
56  {
57  ‪$paginator = $this->paginator
58  ->withCurrentPageNumber(2)
59  ;
60 
61  $pagination = new ‪SimplePagination(‪$paginator);
62 
63  self::assertSame(11, $pagination->getStartRecordNumber());
64  self::assertSame(14, $pagination->getEndRecordNumber());
65  self::assertSame(1, $pagination->getFirstPageNumber());
66  self::assertSame(2, $pagination->getLastPageNumber());
67  self::assertSame(1, $pagination->getPreviousPageNumber());
68  self::assertNull($pagination->getNextPageNumber());
69  self::assertSame([1, 2], $pagination->getAllPageNumbers());
70  }
71 
72  #[Test]
74  {
75  ‪$paginator = $this->paginator
76  ->withItemsPerPage(3)
77  ->withCurrentPageNumber(2)
78  ;
79  $pagination = new ‪SimplePagination(‪$paginator);
80 
81  self::assertSame(4, $pagination->getStartRecordNumber());
82  self::assertSame(6, $pagination->getEndRecordNumber());
83  self::assertSame(1, $pagination->getFirstPageNumber());
84  self::assertSame(5, $pagination->getLastPageNumber());
85  self::assertSame(1, $pagination->getPreviousPageNumber());
86  self::assertSame(3, $pagination->getNextPageNumber());
87  self::assertSame([1, 2, 3, 4, 5], $pagination->getAllPageNumbers());
88  }
89 
90  #[Test]
92  {
93  ‪$paginator = $this->paginator
94  ->withItemsPerPage(50)
95  ;
96  $pagination = new ‪SimplePagination(‪$paginator);
97 
98  self::assertSame(1, $pagination->getStartRecordNumber());
99  self::assertSame(14, $pagination->getEndRecordNumber());
100  self::assertSame(1, $pagination->getFirstPageNumber());
101  self::assertSame(1, $pagination->getLastPageNumber());
102  self::assertNull($pagination->getPreviousPageNumber());
103  self::assertNull($pagination->getNextPageNumber());
104  self::assertSame([1], $pagination->getAllPageNumbers());
105  }
106 
107  #[Test]
108  public function ‪checkPaginatorWithOutOfBoundsCurrentPage(): void
109  {
110  ‪$paginator = $this->paginator
111  ->withItemsPerPage(5)
112  ->withCurrentPageNumber(100)
113  ;
114  $pagination = new ‪SimplePagination(‪$paginator);
115 
116  self::assertSame(11, $pagination->getStartRecordNumber());
117  self::assertSame(14, $pagination->getEndRecordNumber());
118  self::assertSame(3, ‪$paginator->getCurrentPageNumber());
119  self::assertSame(1, $pagination->getFirstPageNumber());
120  self::assertSame(2, $pagination->getPreviousPageNumber());
121  self::assertNull($pagination->getNextPageNumber());
122  self::assertSame(3, $pagination->getLastPageNumber());
123  self::assertSame([1, 2, 3], $pagination->getAllPageNumbers());
124  }
125 }
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest
Definition: SimplePaginationTest.php:26
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage
‪checkSimplePaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage()
Definition: SimplePaginationTest.php:72
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAPaginatorWithDefaultSettings
‪checkSimplePaginationWithAPaginatorWithDefaultSettings()
Definition: SimplePaginationTest.php:40
‪TYPO3\CMS\Core\Pagination\SimplePagination
Definition: SimplePagination.php:21
‪TYPO3\CMS\Core\Tests\Unit\Pagination
Definition: ArrayPaginatorTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\$paginator
‪array $paginator
Definition: SimplePaginationTest.php:30
‪TYPO3\CMS\Core\Pagination\ArrayPaginator
Definition: ArrayPaginator.php:21
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkPaginationWithAPaginatorThatOnlyHasOnePage
‪checkPaginationWithAPaginatorThatOnlyHasOnePage()
Definition: SimplePaginationTest.php:90
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAnIncreasedCurrentPageNumber
‪checkSimplePaginationWithAnIncreasedCurrentPageNumber()
Definition: SimplePaginationTest.php:54
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\setUp
‪setUp()
Definition: SimplePaginationTest.php:32
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkPaginatorWithOutOfBoundsCurrentPage
‪checkPaginatorWithOutOfBoundsCurrentPage()
Definition: SimplePaginationTest.php:107