Neos\Flow\Tests\Functional\Persistence\Doctrine\Mapping\Driver\FlowAnnotationDriverTest::oneToOneRelationsAreMappedCorrectly PHP Метод

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

    public function oneToOneRelationsAreMappedCorrectly()
    {
        $classMetadata = new ClassMetadata(Fixtures\OneToOneEntity::class);
        $driver = $this->objectManager->get(FlowAnnotationDriver::class);
        $driver->loadMetadataForClass(Fixtures\OneToOneEntity::class, $classMetadata);
        $selfReferencingMapping = $classMetadata->getAssociationMapping('selfReferencing');
        $this->assertNotEmpty($selfReferencingMapping['joinColumns']);
        $this->assertTrue($selfReferencingMapping['isOwningSide']);
        $bidirectionalMapping = $classMetadata->getAssociationMapping('bidirectionalRelation');
        $this->assertNotEmpty($bidirectionalMapping['joinColumns']);
        $this->assertEquals('bidirectionalRelation', $bidirectionalMapping['inversedBy']);
        $this->assertTrue($bidirectionalMapping['isOwningSide']);
        $classMetadata2 = new ClassMetadata(Fixtures\OneToOneEntity2::class);
        $driver->loadMetadataForClass(Fixtures\OneToOneEntity2::class, $classMetadata2);
        $bidirectionalMapping2 = $classMetadata2->getAssociationMapping('bidirectionalRelation');
        $this->assertFalse(isset($bidirectionalMapping2['joinColumns']));
        $this->assertEquals('bidirectionalRelation', $bidirectionalMapping2['mappedBy']);
        $this->assertFalse($bidirectionalMapping2['isOwningSide']);
        $unidirectionalMapping = $classMetadata->getAssociationMapping('unidirectionalRelation');
        $this->assertNotEmpty($unidirectionalMapping['joinColumns']);
        $this->assertTrue($unidirectionalMapping['isOwningSide']);
        /* @var $entityManager \Doctrine\Common\Persistence\ObjectManager */
        $entityManager = $this->objectManager->get(\Doctrine\Common\Persistence\ObjectManager::class);
        $schemaTool = new SchemaTool($entityManager);
        $schema = $schemaTool->getSchemaFromMetadata([$entityManager->getClassMetadata(Fixtures\OneToOneEntity2::class)]);
        /* @var $foreignKey \Doctrine\DBAL\Schema\ForeignKeyConstraint */
        foreach ($schema->getTable('persistence_onetooneentity2')->getForeignKeys() as $foreignKey) {
            if ($foreignKey->getForeignTableName() === 'persistence_onetooneentity') {
                $this->assertTrue(false);
            }
        }
    }