22
33namespace Orion \Tests \Unit \Drivers \Standard ;
44
5+ use Illuminate \Support \Facades \Gate ;
56use Orion \Drivers \Standard \Paginator ;
7+ use Orion \Exceptions \MaxPaginationLimitExceededException ;
68use Orion \Http \Requests \Request ;
9+ use Orion \Tests \Fixtures \App \Models \Post ;
10+ use Orion \Tests \Fixtures \App \Models \User ;
11+ use Orion \Tests \Fixtures \App \Policies \GreenPolicy ;
712use Orion \Tests \Unit \TestCase ;
813
914class PaginatorTest extends TestCase
1015{
1116 /** @test */
1217 public function resolving_default_pagination_limit ()
1318 {
14- $ paginator = new Paginator (15 );
19+ $ paginator = new Paginator (15 , 500 );
1520
1621 $ this ->assertSame (15 , $ paginator ->resolvePaginationLimit (Request::create ('/api/posts ' )));
1722 }
1823
1924 /** @test */
2025 public function resolving_pagination_limit_from_request ()
2126 {
22- $ paginator = new Paginator (15 );
27+ $ paginator = new Paginator (15 , 500 );
2328 $ request = Request::create ('/api/posts ' );
2429 $ request ->query ->set ('limit ' , 30 );
2530
@@ -29,10 +34,22 @@ public function resolving_pagination_limit_from_request()
2934 /** @test */
3035 public function falling_back_to_default_pagination_limit ()
3136 {
32- $ paginator = new Paginator (15 );
37+ $ paginator = new Paginator (15 , 500 );
3338 $ request = Request::create ('/api/posts ' );
3439 $ request ->query ->set ('limit ' , 0 );
3540
3641 $ this ->assertSame (15 , $ paginator ->resolvePaginationLimit ($ request ));
3742 }
43+
44+ /** @test */
45+ public function getting_a_list_of_resources_with_exceeded_pagination_limit (): void
46+ {
47+ $ paginator = new Paginator (15 , 500 );
48+ $ request = Request::create ('/api/posts ' );
49+ $ request ->query ->set ('limit ' , 501 );
50+
51+ $ this ->expectException (MaxPaginationLimitExceededException::class);
52+
53+ $ paginator ->resolvePaginationLimit ($ request );
54+ }
3855}
0 commit comments