/** * @test */ public function embeddedValueObjectsAreActuallyEmbedded() { /* @var $entityManager \Doctrine\Common\Persistence\ObjectManager */ $entityManager = $this->objectManager->get('Doctrine\\Common\\Persistence\\ObjectManager'); $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($entityManager); $classMetaData = $entityManager->getClassMetadata('TYPO3\\Flow\\Tests\\Functional\\Persistence\\Fixtures\\TestEntity'); $this->assertTrue($classMetaData->hasField('embeddedValueObject.value'), 'ClassMetadata is not correctly embedded'); $schema = $schemaTool->getSchemaFromMetadata(array($classMetaData)); $this->assertTrue($schema->getTable('persistence_testentity')->hasColumn('embeddedvalueobjectvalue'), 'Database schema is missing embedded field'); $valueObject = new TestEmbeddedValueObject('someValue'); $testEntity = new TestEntity(); $testEntity->setEmbeddedValueObject($valueObject); $this->testEntityRepository->add($testEntity); $this->persistenceManager->persistAll(); $this->persistenceManager->clearState(); /* @var $testEntity TestEntity */ $testEntity = $this->testEntityRepository->findAll()->getFirst(); $this->assertEquals('someValue', $testEntity->getEmbeddedValueObject()->getValue()); }