/** * @param array $fieldNames * @param array $searchFields * @param array $expected * @param boolean $exception * * @dataProvider getSearchFieldsDataProvider */ public function testGetSearchFields($fieldNames, $searchFields, $expected, $exception = false) { if ($exception) { $this->setExpectedException('\\LogicException'); } $this->classMetadataMock->method("getFieldNames")->willReturn($fieldNames); $this->entityMetadataMock->defaultValues = array('dictionary' => array('search_fields' => $searchFields)); $this->assertEquals($expected, $this->dictionaryHelper->getSearchFields($this->classMetadataMock, $this->entityMetadataMock)); }
/** * Search entities by primary key * * @param $keys[] * * @return array */ public function findValueByPrimaryKey($keys) { $entityMetadata = $this->entityConfigManager->getEntityMetadata($this->class); $keyField = $this->dictionaryHelper->getNamePrimaryKeyField($this->getMetadata()); $searchFields = $this->dictionaryHelper->getSearchFields($this->getMetadata(), $entityMetadata); $representationField = $this->dictionaryHelper->getRepresentationField($this->getMetadata(), $entityMetadata); $qb = $this->getListQueryBuilder(-1, 1, [], null, []); $qb->andWhere('e.' . $keyField . ' in (:keys)'); $qb->setParameter('keys', $keys); $query = $qb->getQuery(); $results = $query->getResult(); return $this->prepareData($results, $keyField, $searchFields, $representationField); }