‪TYPO3CMS  ‪main
ArrayPaginatorTest.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;
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
23 
24 final class ‪ArrayPaginatorTest extends UnitTestCase
25 {
26  protected array ‪$fixture = [];
27 
28  protected function ‪setUp(): void
29  {
30  parent::setUp();
31  $this->fixture = range(1, 14, 1);
32  }
33 
37  #[Test]
38  public function ‪integration(): void
39  {
40  self::assertCount(14, $this->fixture);
41  }
42 
43  #[Test]
45  {
46  $paginator = new ‪ArrayPaginator($this->fixture);
47 
48  self::assertSame(2, $paginator->getNumberOfPages());
49  self::assertSame(0, $paginator->getKeyOfFirstPaginatedItem());
50  self::assertSame(9, $paginator->getKeyOfLastPaginatedItem());
51  self::assertCount(10, $paginator->getPaginatedItems());
52  }
53 
54  #[Test]
56  {
57  $paginator = new ‪ArrayPaginator(
58  $this->fixture,
59  1,
60  3
61  );
62 
63  self::assertSame(5, $paginator->getNumberOfPages());
64  self::assertSame(0, $paginator->getKeyOfFirstPaginatedItem());
65  self::assertSame(2, $paginator->getKeyOfLastPaginatedItem());
66  self::assertCount(3, $paginator->getPaginatedItems());
67  }
68 
69  #[Test]
71  {
72  $paginator = new ‪ArrayPaginator(
73  $this->fixture,
74  3,
75  3
76  );
77 
78  self::assertSame(5, $paginator->getNumberOfPages());
79  self::assertSame(6, $paginator->getKeyOfFirstPaginatedItem());
80  self::assertSame(8, $paginator->getKeyOfLastPaginatedItem());
81  self::assertCount(3, $paginator->getPaginatedItems());
82  }
83 
84  #[Test]
86  {
87  $paginator = new ‪ArrayPaginator(
88  $this->fixture,
89  5,
90  3
91  );
92 
93  self::assertSame(5, $paginator->getNumberOfPages());
94  self::assertSame(12, $paginator->getKeyOfFirstPaginatedItem());
95  self::assertSame(13, $paginator->getKeyOfLastPaginatedItem());
96  self::assertCount(2, $paginator->getPaginatedItems());
97  }
98 
99  #[Test]
101  {
102  $this->expectExceptionCode(1573047338);
103 
104  $paginator = new ‪ArrayPaginator(
105  $this->fixture,
106  1,
107  3
108  );
109  $paginator->withCurrentPageNumber(0);
110  }
111 
112  #[Test]
114  {
115  $paginator = new ‪ArrayPaginator(
116  $this->fixture,
117  3,
118  10
119  );
120 
121  self::assertEquals(2, $paginator->getCurrentPageNumber());
122  self::assertEquals(2, $paginator->getNumberOfPages());
123  self::assertCount(4, $paginator->getPaginatedItems());
124  }
125 
126  #[Test]
128  {
129  $paginator = new ‪ArrayPaginator(
130  $this->fixture,
131  1,
132  50
133  );
134 
135  self::assertSame(1, $paginator->getNumberOfPages());
136  self::assertSame(0, $paginator->getKeyOfFirstPaginatedItem());
137  self::assertSame(13, $paginator->getKeyOfLastPaginatedItem());
138  self::assertCount(14, $paginator->getPaginatedItems());
139  }
140 }
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\setUp
‪setUp()
Definition: ArrayPaginatorTest.php:28
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\paginatorSetsCurrentPageToLastPageIfCurrentPageExceedsMaximum
‪paginatorSetsCurrentPageToLastPageIfCurrentPageExceedsMaximum()
Definition: ArrayPaginatorTest.php:113
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest
Definition: ArrayPaginatorTest.php:25
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\paginatorRespectsItemsPerPageConfiguration
‪paginatorRespectsItemsPerPageConfiguration()
Definition: ArrayPaginatorTest.php:55
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\checkPaginatorWithDefaultConfiguration
‪checkPaginatorWithDefaultConfiguration()
Definition: ArrayPaginatorTest.php:44
‪TYPO3\CMS\Core\Tests\Unit\Pagination
Definition: ArrayPaginatorTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\paginatorProperlyCalculatesLastPage
‪paginatorProperlyCalculatesLastPage()
Definition: ArrayPaginatorTest.php:85
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\withCurrentPageNumberThrowsInvalidArgumentExceptionIfCurrentPageIsLowerThanOne
‪withCurrentPageNumberThrowsInvalidArgumentExceptionIfCurrentPageIsLowerThanOne()
Definition: ArrayPaginatorTest.php:100
‪TYPO3\CMS\Core\Pagination\ArrayPaginator
Definition: ArrayPaginator.php:21
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\integration
‪integration()
Definition: ArrayPaginatorTest.php:38
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\$fixture
‪array $fixture
Definition: ArrayPaginatorTest.php:26
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\paginatorRespectsItemsPerPageConfigurationAndCurrentPage
‪paginatorRespectsItemsPerPageConfigurationAndCurrentPage()
Definition: ArrayPaginatorTest.php:70
‪TYPO3\CMS\Core\Tests\Unit\Pagination\ArrayPaginatorTest\paginatorProperlyCalculatesOnlyOnePage
‪paginatorProperlyCalculatesOnlyOnePage()
Definition: ArrayPaginatorTest.php:127