‪TYPO3CMS  11.5
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 
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
23 
24 class ‪SimplePaginationTest extends UnitTestCase
25 {
30  protected ‪$paginator = [];
31 
32  protected function ‪setUp(): void
33  {
34  parent::setUp();
35 
36  $this->paginator = new ‪ArrayPaginator(range(1, 14, 1));
37  }
38 
43  {
44  $pagination = new ‪SimplePagination($this->paginator);
45 
46  self::assertSame(1, $pagination->getStartRecordNumber());
47  self::assertSame(10, $pagination->getEndRecordNumber());
48  self::assertSame(1, $pagination->getFirstPageNumber());
49  self::assertSame(2, $pagination->getLastPageNumber());
50  self::assertNull($pagination->getPreviousPageNumber());
51  self::assertSame(2, $pagination->getNextPageNumber());
52  self::assertSame([1, 2], $pagination->getAllPageNumbers());
53  }
54 
59  {
60  ‪$paginator = $this->paginator
61  ->withCurrentPageNumber(2)
62  ;
63 
64  $pagination = new SimplePagination(‪$paginator);
65 
66  self::assertSame(11, $pagination->getStartRecordNumber());
67  self::assertSame(14, $pagination->getEndRecordNumber());
68  self::assertSame(1, $pagination->getFirstPageNumber());
69  self::assertSame(2, $pagination->getLastPageNumber());
70  self::assertSame(1, $pagination->getPreviousPageNumber());
71  self::assertNull($pagination->getNextPageNumber());
72  self::assertSame([1, 2], $pagination->getAllPageNumbers());
73  }
74 
79  {
80  ‪$paginator = $this->paginator
81  ->withItemsPerPage(3)
82  ->withCurrentPageNumber(2)
83  ;
84  $pagination = new SimplePagination(‪$paginator);
85 
86  self::assertSame(4, $pagination->getStartRecordNumber());
87  self::assertSame(6, $pagination->getEndRecordNumber());
88  self::assertSame(1, $pagination->getFirstPageNumber());
89  self::assertSame(5, $pagination->getLastPageNumber());
90  self::assertSame(1, $pagination->getPreviousPageNumber());
91  self::assertSame(3, $pagination->getNextPageNumber());
92  self::assertSame([1, 2, 3, 4, 5], $pagination->getAllPageNumbers());
93  }
94 
99  {
100  ‪$paginator = $this->paginator
101  ->withItemsPerPage(50)
102  ;
103  $pagination = new SimplePagination(‪$paginator);
104 
105  self::assertSame(1, $pagination->getStartRecordNumber());
106  self::assertSame(14, $pagination->getEndRecordNumber());
107  self::assertSame(1, $pagination->getFirstPageNumber());
108  self::assertSame(1, $pagination->getLastPageNumber());
109  self::assertNull($pagination->getPreviousPageNumber());
110  self::assertNull($pagination->getNextPageNumber());
111  self::assertSame([1], $pagination->getAllPageNumbers());
112  }
113 
117  public function ‪checkPaginatorWithOutOfBoundsCurrentPage(): void
118  {
119  ‪$paginator = $this->paginator
120  ->withItemsPerPage(5)
121  ->withCurrentPageNumber(100)
122  ;
123  $pagination = new SimplePagination(‪$paginator);
124 
125  self::assertSame(11, $pagination->getStartRecordNumber());
126  self::assertSame(14, $pagination->getEndRecordNumber());
127  self::assertSame(3, ‪$paginator->getCurrentPageNumber());
128  self::assertSame(1, $pagination->getFirstPageNumber());
129  self::assertSame(2, $pagination->getPreviousPageNumber());
130  self::assertNull($pagination->getNextPageNumber());
131  self::assertSame(3, $pagination->getLastPageNumber());
132  self::assertSame([1, 2, 3], $pagination->getAllPageNumbers());
133  }
134 }
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest
Definition: SimplePaginationTest.php:25
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage
‪checkSimplePaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage()
Definition: SimplePaginationTest.php:77
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAPaginatorWithDefaultSettings
‪checkSimplePaginationWithAPaginatorWithDefaultSettings()
Definition: SimplePaginationTest.php:41
‪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:29
‪TYPO3\CMS\Core\Pagination\ArrayPaginator
Definition: ArrayPaginator.php:21
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkPaginationWithAPaginatorThatOnlyHasOnePage
‪checkPaginationWithAPaginatorThatOnlyHasOnePage()
Definition: SimplePaginationTest.php:97
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkSimplePaginationWithAnIncreasedCurrentPageNumber
‪checkSimplePaginationWithAnIncreasedCurrentPageNumber()
Definition: SimplePaginationTest.php:57
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\setUp
‪setUp()
Definition: SimplePaginationTest.php:31
‪TYPO3\CMS\Core\Tests\Unit\Pagination\SimplePaginationTest\checkPaginatorWithOutOfBoundsCurrentPage
‪checkPaginatorWithOutOfBoundsCurrentPage()
Definition: SimplePaginationTest.php:116