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);
 }