Пример #1
0
 /**
  * @param object $entity
  * @param array $searchContext
  * @return null|object
  */
 protected function findExistingEntity($entity, array $searchContext = [])
 {
     $entityName = ClassUtils::getClass($entity);
     $identifier = $this->databaseHelper->getIdentifier($entity);
     $existingEntity = null;
     // find by identifier
     if ($identifier) {
         $existingEntity = $this->databaseHelper->find($entityName, $identifier);
     }
     // find by identity fields
     if (!$existingEntity && (!$searchContext || $this->databaseHelper->getIdentifier(current($searchContext)))) {
         $existingEntity = $this->findExistingEntityByIdentityFields($entity, $searchContext);
     }
     if ($existingEntity && !$identifier) {
         $identifier = $this->databaseHelper->getIdentifier($existingEntity);
         $identifierName = $this->databaseHelper->getIdentifierFieldName($entity);
         $this->fieldHelper->setObjectValue($entity, $identifierName, $identifier);
     }
     return $existingEntity;
 }
Пример #2
0
 public function testGetIdentifierFieldName()
 {
     $fieldName = 'id';
     $this->doctrineHelper->expects($this->once())->method('getSingleEntityIdentifierFieldName')->with(self::TEST_CLASS)->will($this->returnValue($fieldName));
     $this->assertEquals($fieldName, $this->helper->getIdentifierFieldName(self::TEST_CLASS));
 }