public function testQuery() { $select = $this->indexService->select(); $resultItem = new Item($this->entityManager); $searchResults = [$resultItem]; $this->engine->expects($this->once())->method('search')->will($this->returnCallback(function (Query $query) use($searchResults) { return new Result($query, $searchResults, count($searchResults)); })); $result = $this->indexService->query($select); $this->assertEquals($searchResults, $result->getElements()); $this->assertEquals(count($searchResults), $result->getRecordsCount()); }
/** * Adjust query for tag-results-grid (tag search result grid) * after datasource has been built * * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datasource = $event->getDatagrid()->getDatasource(); if ($datasource instanceof SearchDatasource) { /** @var $query Query */ $query = new IndexerQuery($this->indexer, $this->indexer->select()); $searchEntity = $this->requestParams->get('from', '*'); $searchEntity = empty($searchEntity) ? '*' : $searchEntity; $searchString = $this->requestParams->get('search', ''); $query->from($searchEntity)->andWhere(Indexer::TEXT_ALL_DATA_FIELD, '~', $searchString, 'text'); $datasource->setQuery($query); } }
/** * {@inheritDoc} */ public function process(DatagridInterface $grid, array $config) { $this->query = new IndexerQuery($this->indexer, $this->indexer->select()); $grid->setDatasource(clone $this); }