public function testSortParameters()
 {
     $registry = $this->getMock('Symfony\\Bridge\\Doctrine\\RegistryInterface');
     $manager = new ModelManager($registry);
     $datagrid1 = $this->getMockBuilder('\\Sonata\\AdminBundle\\Datagrid\\Datagrid')->disableOriginalConstructor()->getMock();
     $datagrid2 = $this->getMockBuilder('\\Sonata\\AdminBundle\\Datagrid\\Datagrid')->disableOriginalConstructor()->getMock();
     $field1 = new FieldDescription();
     $field1->setName('field1');
     $field2 = new FieldDescription();
     $field2->setName('field2');
     $field3 = new FieldDescription();
     $field3->setName('field3');
     $field3->setOption('sortable', 'field3sortBy');
     $datagrid1->expects($this->any())->method('getValues')->will($this->returnValue(array('_sort_by' => $field1, '_sort_order' => 'ASC')));
     $datagrid2->expects($this->any())->method('getValues')->will($this->returnValue(array('_sort_by' => $field3, '_sort_order' => 'ASC')));
     $parameters = $manager->getSortParameters($field1, $datagrid1);
     $this->assertEquals('DESC', $parameters['filter']['_sort_order']);
     $this->assertEquals('field1', $parameters['filter']['_sort_by']);
     $parameters = $manager->getSortParameters($field2, $datagrid1);
     $this->assertEquals('ASC', $parameters['filter']['_sort_order']);
     $this->assertEquals('field2', $parameters['filter']['_sort_by']);
     $parameters = $manager->getSortParameters($field3, $datagrid1);
     $this->assertEquals('ASC', $parameters['filter']['_sort_order']);
     $this->assertEquals('field3sortBy', $parameters['filter']['_sort_by']);
     $parameters = $manager->getSortParameters($field3, $datagrid2);
     $this->assertEquals('DESC', $parameters['filter']['_sort_order']);
     $this->assertEquals('field3sortBy', $parameters['filter']['_sort_by']);
 }
 /**
  * @param string                                            $baseClass
  * @param string                                            $propertyFullName
  * @param \Sonata\DoctrineORMAdminBundle\Model\ModelManager $modelManager
  *
  * @return array|null
  */
 protected function getParentMetadataForProperty($baseClass, $propertyFullName, ModelManager $modelManager)
 {
     try {
         return $modelManager->getParentMetadataForProperty($baseClass, $propertyFullName);
     } catch (MappingException $e) {
         // no metadata not found.
         return null;
     }
 }
 /**
  * @param RegistryInterface $registry
  * @param Pool              $pool
  */
 public function __construct(RegistryInterface $registry, Pool $pool)
 {
     parent::__construct($registry);
     $this->pool = $pool;
 }
 /**
  * @param RegistryInterface $registry
  * @param ManagerInterface  $manager
  */
 public function __construct(RegistryInterface $registry, $manager)
 {
     parent::__construct($registry);
     $this->manager = $manager;
 }
 /**
  * @param \Symfony\Bridge\Doctrine\RegistryInterface $doctrine
  * @param mixed                                      $manager
  */
 public function __construct(RegistryInterface $doctrine, $manager)
 {
     parent::__construct($doctrine);
     $this->manager = $manager;
 }