public function testSearch() { $entity = new Search(); $entity->setIndex('test-index'); $entity->setQuery('test-query'); $expected = (new Search())->setIndex('test-index')->setQuery('test-query')->setResult(array('test-response', 'test-data')); $this->assertEquals($expected, $this->service->search($entity)); }
public function testValidationFailure() { $data = array('index' => '', 'query' => ''); $this->assertInstanceOf('Application\\Model\\Entity\\Search', $this->entity->exchangeArray($data)); $this->assertFalse($this->entity->isValid()); $this->assertNotEmpty($this->entity->getErrorMessages()); $this->assertEquals(2, count($this->entity->getErrorMessages()['errors'])); }
public function indexAction() { $form = new SearchForm(); $searchEntity = new Search(); $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter($searchEntity->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $searchEntity->exchangeArray($form->getData()); try { $searchEntity = $this->getServiceLocator()->get('application.service.elasticsearch')->search($searchEntity); } catch (\Exception $e) { $this->getServiceLocator()->get('log.app')->emerg($e->getMessage()); $searchEntity->setResult(array('Error' => $e->getMessage())); } } } return new ViewModel(array('form' => $form, 'searchEntity' => $searchEntity)); }
/** * @param SearchEntity $searchEntity * @return SearchEntity */ public function search(SearchEntity $searchEntity) { $searchEntity->setResult($this->getServiceManager()->get('elasticsearch')->search(array('index' => $searchEntity->getIndex(), 'body' => $searchEntity->getQuery()))); return $searchEntity; }