OneToOneMappingTest.php 1.74 KB
Newer Older
1
<?php
2 3 4

namespace Doctrine\Tests\ORM\Associations;

5
require_once __DIR__ . '/../../TestInit.php';
6

7
class OneToOneMappingTest extends \Doctrine\Tests\OrmTestCase
8 9 10 11 12 13
{    
    public function testCorrectOneToOneBidirectionalMapping()
    {
        $owningSideMapping = array(
            'fieldName' => 'address',
            'targetEntity' => 'Address',
14
            'joinColumns' => array(array('name' => 'address_id', 'referencedColumnName' => 'id')),
romanb's avatar
romanb committed
15
            'sourceEntity' => 'Person', // This is normally filled by ClassMetadata
16 17
        );
        
18
        $oneToOneMapping = new \Doctrine\ORM\Mapping\OneToOneMapping($owningSideMapping);
19 20 21 22 23 24 25
        
        $this->assertEquals(array('address_id' => 'id'), $oneToOneMapping->getSourceToTargetKeyColumns());
        $this->assertEquals(array('id' => 'address_id'), $oneToOneMapping->getTargetToSourceKeyColumns());
        $this->assertEquals('Address', $oneToOneMapping->getTargetEntityName());
        $this->assertEquals('Person', $oneToOneMapping->getSourceEntityName());
        $this->assertEquals('address', $oneToOneMapping->getSourceFieldName());
        $this->assertTrue($oneToOneMapping->isOwningSide());
26

27
        $inverseSideMapping = array(
romanb's avatar
romanb committed
28 29 30
            'fieldName' => 'person',
            'sourceEntity' => 'Address',
            'targetEntity' => 'Person',
31 32 33
            'mappedBy' => 'address'
        );
        
34
        $oneToOneMapping = new \Doctrine\ORM\Mapping\OneToOneMapping($inverseSideMapping);
35
        $this->assertEquals('address', $oneToOneMapping->getMappedByFieldName());
romanb's avatar
romanb committed
36 37
        $this->assertEquals('Address', $oneToOneMapping->getSourceEntityName());
        $this->assertEquals('Person', $oneToOneMapping->getTargetEntityName());
38 39
        $this->assertTrue($oneToOneMapping->isInverseSide());
    }
40
}