Neos\Flow\Tests\Functional\Persistence\Doctrine\PersistClonedRelatedEntitiesTest::embeddablesInsideClonedProxiedEntitiesAreCorrectlyLoaded PHP Метод

embeddablesInsideClonedProxiedEntitiesAreCorrectlyLoaded() публичный Метод

    public function embeddablesInsideClonedProxiedEntitiesAreCorrectlyLoaded()
    {
        $this->markTestSkipped('This is possibly a bug of Doctrine');
        $entity = new Fixtures\TestEntity();
        $entity->setName('Andi');
        $relatedEntity = new Fixtures\TestEntity();
        $relatedEntity->setName('Robert');
        $embedded = new Fixtures\TestEmbeddable('Foo');
        $relatedEntity->setEmbedded($embedded);
        $valueObject = new Fixtures\TestValueObject('Bar');
        $relatedEntity->setRelatedValueObject($valueObject);
        $entity->setRelatedEntity($relatedEntity);
        $clonedRelatedEntity = clone $entity->getRelatedEntity();
        $this->assertNotNull($clonedRelatedEntity->getEmbedded(), 'Unproxied clone embedded is null');
        $this->testEntityRepository->add($entity);
        $this->testEntityRepository->add($relatedEntity);
        $this->persistenceManager->persistAll();
        $this->persistenceManager->clearState();
        $entityIdentifier = $this->persistenceManager->getIdentifierByObject($entity);
        $loadedEntity = $this->testEntityRepository->findByIdentifier($entityIdentifier);
        $clonedRelatedEntity = clone $loadedEntity->getRelatedEntity();
        $this->assertNotNull($clonedRelatedEntity->getRelatedValueObject(), 'Proxied clone value object is null');
        $this->assertNotNull($clonedRelatedEntity->getEmbedded(), 'Proxied clone embedded is null');
        $this->assertEquals('Foo', $clonedRelatedEntity->getEmbedded()->getValue());
    }