Example #1
0
 /**
  * get document list by paginate
  * board item entity class list
  *
  * @param array        $wheres 검색 조건
  * @param array        $orders 정렬 조건
  * @param ConfigEntity $config board config entity
  * @return LengthAwarePaginator
  * @see \Xpressengine\Document\Repositories\DocumentRepository
  */
 public function paginate(array $wheres, array $orders, ConfigEntity $config = null)
 {
     if ($config == null) {
         $config = $this->config;
     }
     if ($orders == [] && $config->get('orderExtension') != null) {
         $orderType = sprintf('\\%s', $config->get('orderExtension'));
         (new $orderType())->make($wheres, $orders);
     }
     $paginator = $this->document->paginate($wheres, $orders, $config->get('perPage'));
     // wrap item entity
     foreach ($paginator as $key => $doc) {
         $paginator[$key] = $this->makeItem($doc);
     }
     $this->shortIdGenerator->associates($paginator);
     $this->slug->associates($paginator);
     return $paginator;
 }
 /**
  * test get documents using paginate
  *
  * @return void
  */
 public function testPaginate()
 {
     $conn = $this->conn;
     $repo = $this->repo;
     $configHandler = $this->configHandler;
     $instanceManager = $this->instanceManager;
     $request = $this->request;
     $handler = new DocumentHandler($conn, $repo, $configHandler, $instanceManager, $request);
     $ids = ['id1', 'id2'];
     $instanceId = 'instanceId';
     $userId = 'userId';
     $items = [['id' => $ids[0], 'instanceId' => $instanceId, 'userId' => $userId], ['id' => $ids[1], 'instanceId' => $instanceId, 'userId' => $userId]];
     $repo->shouldReceive('paginate')->andReturn($this->getPaginator($items));
     $wheres = ['instanceId' => $instanceId];
     $orders = [];
     $configHandler->shouldReceive('get')->andReturn($this->getConfigEntity());
     $result = $handler->paginate($wheres, $orders);
     $this->assertInstanceOf('Illuminate\\Pagination\\LengthAwarePaginator', $result);
 }