Neos\Flow\Tests\Functional\Persistence\Fixtures\EntityWithIndexedRelation::setRelatedIndexEntity PHP Method

setRelatedIndexEntity() public method

public setRelatedIndexEntity ( string $sorting, RelatedIndexEntity $relatedIndexEntity )
$sorting string
$relatedIndexEntity RelatedIndexEntity
    public function setRelatedIndexEntity($sorting, RelatedIndexEntity $relatedIndexEntity)
    {
        $relatedIndexEntity->setSorting($sorting);
        $relatedIndexEntity->setEntityWithIndexedRelation($this);
        $this->relatedIndexEntities->set($sorting, $relatedIndexEntity);
    }

Usage Example

 /**
  * This tests calls two indexed Relations and ensure that indexes are restored after fetching from persistence
  *
  * @test
  */
 public function collectionsWithIndexAttributeAreIndexed()
 {
     $entityWithIndexedRelation = new Fixtures\EntityWithIndexedRelation();
     for ($i = 0; $i < 3; $i++) {
         $annotatedIdentitiesEntity = new Fixtures\AnnotatedIdentitiesEntity();
         $annotatedIdentitiesEntity->setAuthor('Author' . (string) $i);
         $annotatedIdentitiesEntity->setTitle('Author' . (string) $i);
         $entityWithIndexedRelation->getAnnotatedIdentitiesEntities()->add($annotatedIdentitiesEntity);
     }
     $entityWithIndexedRelation->setRelatedIndexEntity('test', new Fixtures\RelatedIndexEntity());
     $this->persistenceManager->add($entityWithIndexedRelation);
     $this->persistenceManager->persistAll();
     $id = $this->persistenceManager->getIdentifierByObject($entityWithIndexedRelation);
     // Reset persistence manager to make sure fresh instances will be created
     $this->persistenceManager->clearState();
     unset($entityWithIndexedRelation);
     $entityWithIndexedRelation = $this->persistenceManager->getObjectByIdentifier($id, Fixtures\EntityWithIndexedRelation::class);
     for ($i = 0; $i < 3; $i++) {
         $this->assertArrayHasKey('Author' . (string) $i, $entityWithIndexedRelation->getAnnotatedIdentitiesEntities());
     }
     $this->assertArrayNotHasKey(0, $entityWithIndexedRelation->getAnnotatedIdentitiesEntities());
     $this->assertArrayHasKey('test', $entityWithIndexedRelation->getRelatedIndexEntities());
     $this->assertArrayNotHasKey(0, $entityWithIndexedRelation->getRelatedIndexEntities());
     $this->assertInstanceOf(Fixtures\RelatedIndexEntity::class, $entityWithIndexedRelation->getRelatedIndexEntities()->get('test'));
 }