Example #1
0
 public function testFind()
 {
     $entity = new \stdClass();
     $identifier = 1;
     $this->doctrineHelper->expects($this->once())->method('getEntity')->with(self::TEST_CLASS, $identifier)->will($this->returnValue($entity));
     $this->assertEquals($entity, $this->helper->find(self::TEST_CLASS, $identifier));
 }
 /**
  * @param object $entity
  * @param array $searchContext
  * @return null|object
  */
 protected function findExistingEntity($entity, array $searchContext = array())
 {
     $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)))) {
         $identityValues = $searchContext;
         $identityValues += $this->fieldHelper->getIdentityValues($entity);
         $existingEntity = $this->findEntityByIdentityValues($entityName, $identityValues);
     }
     return $existingEntity;
 }
Example #3
0
 public function testFindObjectFromEnotherOrganization()
 {
     $entityOrganization = new TestOrganization();
     $entityOrganization->setId(2);
     $entity = new TestEntity();
     $entity->getOrganization($entityOrganization);
     $identifier = 1;
     $entity->setId($identifier);
     $currentOrganization = new TestOrganization();
     $currentOrganization->setId(1);
     $this->securityFacade->expects($this->any())->method('getOrganization')->willReturn($currentOrganization);
     $this->securityFacade->expects($this->any())->method('getOrganizationId')->willReturn($currentOrganization->getId());
     $this->doctrineHelper->expects($this->once())->method('getEntity')->with(self::TEST_CLASS, $identifier)->will($this->returnValue($entity));
     $metadata = new OwnershipMetadata('USER', 'owner', 'owner', 'organization', 'organization');
     $this->fieldHelperService->expects($this->once())->method('getObjectValue')->willReturn($entity->getOrganization());
     $this->ownershipMetadataProvider->expects($this->any())->method('getMetadata')->willReturn($metadata);
     $this->assertNull($this->helper->find(self::TEST_CLASS, $identifier));
 }
 /**
  * @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;
 }