|
| 1 | +<?php |
| 2 | +namespace League\Fractal\Test\Pagination; |
| 3 | + |
| 4 | +use League\Fractal\Pagination\LaminasPaginatorAdapter; |
| 5 | +use Mockery; |
| 6 | +use PHPUnit\Framework\TestCase; |
| 7 | + |
| 8 | +class LaminasFrameworkPaginatorAdapterTest extends TestCase |
| 9 | +{ |
| 10 | + public function testPaginationAdapter() |
| 11 | + { |
| 12 | + $items = [ |
| 13 | + 'Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5', 'Item 6', 'Item 7', 'Item 8', 'Item 9', 'Item 10', |
| 14 | + 'Item 11', 'Item 12', 'Item 13', 'Item 14', 'Item 15', 'Item 16', 'Item 17', 'Item 18', 'Item 19', 'Item 20', |
| 15 | + 'Item 21', 'Item 22', 'Item 23', 'Item 24', 'Item 25', 'Item 26', 'Item 27', 'Item 28', 'Item 29', 'Item 30', |
| 16 | + 'Item 31', 'Item 32', 'Item 33', 'Item 34', 'Item 35', 'Item 36', 'Item 37', 'Item 38', 'Item 39', 'Item 40', |
| 17 | + 'Item 41', 'Item 42', 'Item 43', 'Item 44', 'Item 45', 'Item 46', 'Item 47', 'Item 48', 'Item 49', 'Item 50', |
| 18 | + ]; |
| 19 | + |
| 20 | + $adapter = Mockery::mock('Laminas\Paginator\Adapter\ArrayAdapter', [$items])->makePartial(); |
| 21 | + |
| 22 | + $total = 50; |
| 23 | + $count = 10; |
| 24 | + $perPage = 10; |
| 25 | + $currentPage = 2; |
| 26 | + $lastPage = 5; |
| 27 | + |
| 28 | + $paginator = Mockery::mock('Laminas\Paginator\Paginator', [$adapter])->makePartial(); |
| 29 | + |
| 30 | + $paginator->shouldReceive('getCurrentPageNumber')->andReturn($currentPage); |
| 31 | + $paginator->shouldReceive('count')->andReturn($lastPage); |
| 32 | + $paginator->shouldReceive('getItemCountPerPage')->andReturn($perPage); |
| 33 | + |
| 34 | + $adapter = new LaminasPaginatorAdapter($paginator, function ($page) { |
| 35 | + return 'http://example.com/foo?page='.$page; |
| 36 | + }); |
| 37 | + |
| 38 | + $this->assertInstanceOf('League\Fractal\Pagination\PaginatorInterface', $adapter); |
| 39 | + |
| 40 | + $this->assertSame($currentPage, $adapter->getCurrentPage()); |
| 41 | + $this->assertSame($lastPage, $adapter->getLastPage()); |
| 42 | + $this->assertSame($count, $adapter->getCount()); |
| 43 | + $this->assertSame($total, $adapter->getTotal()); |
| 44 | + $this->assertSame($perPage, $adapter->getPerPage()); |
| 45 | + $this->assertSame('http://example.com/foo?page=1', $adapter->getUrl(1)); |
| 46 | + $this->assertSame('http://example.com/foo?page=3', $adapter->getUrl(3)); |
| 47 | + } |
| 48 | + |
| 49 | + public function tearDown(): void |
| 50 | + { |
| 51 | + Mockery::close(); |
| 52 | + } |
| 53 | +} |
0 commit comments