public function testListAction() { $doctrine = $this->getMock('Symfony\\Bridge\\Doctrine\\RegistryInterface'); $repository = $this->getMock('Pim\\Bundle\\UIBundle\\Entity\\Repository\\OptionRepositoryInterface'); $doctrine->expects($this->once())->method('getRepository')->with($this->equalTo('class'))->will($this->returnValue($repository)); $repository->expects($this->once())->method('getOptions')->with($this->equalTo('data_locale'), $this->equalTo('collection_id'), $this->equalTo('search'), $this->equalTo(array('options')))->will($this->returnValue(array('success' => true))); $request = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Request')->disableOriginalConstructor()->getMock(); $request->query = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\ParameterBag')->disableOriginalConstructor()->getMock(); $arguments = array('class' => 'class', 'dataLocale' => 'data_locale', 'collectionId' => 'collection_id', 'search' => 'search', 'options' => array('options')); $request->query->expects($this->any())->method('get')->will($this->returnCallback(function ($key) use($arguments) { return $arguments[$key]; })); $controller = new AjaxOptionController($doctrine); $result = $controller->listAction($request); $this->assertEquals('{"success":true}', $result->getContent()); }
/** * {@inheritdoc} */ public function listAction(Request $request) { $query = $request->query; $repository = $this->doctrine->getRepository($query->get('class')); if ($repository instanceof ReferenceDataRepositoryInterface) { $options = $query->get('options', []) + ['dataLocale' => $query->get('dataLocale')]; $choices = ['results' => $repository->findBySearch($query->get('search'), $options)]; return new JsonResponse($choices); } return parent::listAction($request); }