Ejemplo n.º 1
0
 /**
  * Compare two values for equality
  *
  * @param mixed $left
  * @param mixed $right
  * @return boolean
  */
 protected function doCompare($left, $right)
 {
     if (is_object($left) && is_object($right)) {
         $leftClass = $this->doctrineHelper->getEntityClass($left);
         $rightClass = $this->doctrineHelper->getEntityClass($right);
         if ($leftClass == $rightClass && $this->doctrineHelper->isManageableEntity($left) && $this->doctrineHelper->isManageableEntity($right)) {
             $leftIdentifier = $this->doctrineHelper->getEntityIdentifier($left);
             $rightIdentifier = $this->doctrineHelper->getEntityIdentifier($right);
             return $leftIdentifier == $rightIdentifier;
         }
     }
     return $left == $right;
 }
 /**
  * @param array|\Traversable $values
  * @return array
  */
 protected function convertToPlainArray($values)
 {
     $result = array();
     foreach ($values as $key => $value) {
         if (is_object($value) && $this->doctrineHelper->isManageableEntity($value)) {
             $result[$key] = $this->doctrineHelper->getEntityIdentifier($value);
         } elseif (is_array($value) || $value instanceof \Traversable) {
             $result[$key] = $this->convertToPlainArray($value);
         } else {
             $result[$key] = $value;
         }
     }
     return $result;
 }
 /**
  * @param object $entity
  * @param boolean $manageable
  * @dataProvider isManageableEntityDataProvider
  */
 public function testIsManageableEntity($entity, $manageable)
 {
     if ($manageable) {
         $entityManager = $this->getMockBuilder('Doctrine\\Orm\\EntityManager')->disableOriginalConstructor()->getMock();
         $this->registry->expects($this->once())->method('getManagerForClass')->with($this->doctrineHelper->getEntityClass($entity))->will($this->returnValue($entityManager));
     } else {
         $this->registry->expects($this->once())->method('getManagerForClass')->with($this->doctrineHelper->getEntityClass($entity))->will($this->returnValue(null));
     }
     $this->assertEquals($manageable, $this->doctrineHelper->isManageableEntity($entity));
 }