File tree Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Original file line number Diff line number Diff line change 22
33namespace ViewComponents \Eloquent \Processor ;
44
5- use Illuminate \Database \Eloquent \Builder ;
5+ use Illuminate \Database \Eloquent \Builder as EloquentBuilder ;
6+ use Illuminate \Database \Query \Builder ;
67use ViewComponents \ViewComponents \Data \Operation \OperationInterface ;
78use ViewComponents \ViewComponents \Data \Operation \PaginateOperation ;
89use ViewComponents \ViewComponents \Data \Processor \AbstractPaginateProcessor ;
910
1011class PaginateProcessor extends AbstractPaginateProcessor
1112{
1213 /**
13- * @param Builder $src
14+ * @param Builder|EloquentBuilder $src
1415 * @param OperationInterface|PaginateOperation $operation
1516 * @return mixed
1617 */
1718 public function process ($ src , OperationInterface $ operation )
1819 {
1920
20- $ src ->getQuery ()
21- ->limit ($ operation ->getPageSize ())
21+ $ src ->limit ($ operation ->getPageSize ())
2222 ->offset ($ this ->getOffset ($ operation ));
2323 return $ src ;
2424 }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace ViewComponents \Eloquent \Test \Processor ;
4+
5+ use ViewComponents \Eloquent \EloquentDataProvider ;
6+ use ViewComponents \Eloquent \Test \Mock \TestUser ;
7+ use ViewComponents \ViewComponents \Data \Operation \PaginateOperation ;
8+ use Illuminate \Database \Capsule \Manager as DB ;
9+
10+ class PaginateProcessorTest extends \PHPUnit_Framework_TestCase
11+ {
12+ public function test ()
13+ {
14+ $ recordsQty = TestUser::all ()->count ();
15+ if ($ recordsQty <= 5 ) {
16+ throw new \Exception ("Can't test PaginateProcessor: not enough fixture data " );
17+ }
18+ $ provider = new EloquentDataProvider (TestUser::class);
19+ $ provider ->operations ()->add (new PaginateOperation (1 ,3 ));
20+ $ data = iterator_to_array ($ provider );
21+ $ id1 = array_first ($ data )->id ;
22+ self ::assertEquals (3 , count ($ data ));
23+
24+ $ provider = new EloquentDataProvider (DB ::table ((new TestUser )->getTable ()));
25+ $ provider ->operations ()->add (new PaginateOperation (2 ,2 ));
26+ $ data = iterator_to_array ($ provider );
27+ self ::assertEquals (2 , count ($ data ));
28+
29+ $ id2 = array_first ($ data )->id ;
30+ self ::assertTrue ($ id2 > 0 && $ id2 > 0 && $ id1 !== $ id2 );
31+ }
32+ }
You can’t perform that action at this time.
0 commit comments