/** * Get the next items for a paged list. * * @param PagedList $pagedList * * @return Response */ public function getNextItems(PagedList $pagedList) { if (!$pagedList->hasNext()) { throw new InvalidArgumentException('The list has no more items'); } $items = $pagedList->items(); if (empty($items)) { throw new InvalidArgumentException('Unable to detect object type because the list contains no items'); } $item = reset($items); $objectClassName = get_class($item); $objectInstance = new $objectClassName(); $request = $this->buildRequestForPagedList($pagedList); return $this->execute($request, function (Response $response) use($objectInstance) { $mapper = new Mapper($objectInstance); return $mapper->toList($response); }); }
public function test_it_returns_the_items() { $items = array(new User(), new User()); $pagedList = new PagedList($items); $this->assertSame($items, $pagedList->items()); }