fb055ca75d
SchemaTool now creates all Id columns not just only the first one. Insert statement for child entity now contains parameter for additional key columns only once.
65 lines
1.5 KiB
PHP
65 lines
1.5 KiB
PHP
<?php
|
|
namespace Doctrine\Tests\ORM\Functional;
|
|
|
|
use Doctrine\Tests\OrmFunctionalTestCase;
|
|
use Doctrine\Tests\Models\CompositeKeyInheritance\JoinedChildClass;
|
|
|
|
class JoinedTableCompositeKeyTest extends OrmFunctionalTestCase
|
|
{
|
|
|
|
public function setUp()
|
|
{
|
|
$this->useModelSet('compositekeyinheritance');
|
|
parent::setUp();
|
|
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testInsertWithCompositeKey()
|
|
{
|
|
$childEntity = new JoinedChildClass();
|
|
$this->_em->persist($childEntity);
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
$entity = $this->findEntity();
|
|
$this->assertEquals($childEntity, $entity);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function testUpdateWithCompositeKey()
|
|
{
|
|
$childEntity = new JoinedChildClass();
|
|
$this->_em->persist($childEntity);
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
$entity = $this->findEntity();
|
|
$entity->extension = 'ext-new';
|
|
$this->_em->persist($entity);
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
$persistedEntity = $this->findEntity();
|
|
$this->assertEquals($entity, $persistedEntity);
|
|
}
|
|
|
|
/**
|
|
* @return \Doctrine\Tests\Models\CompositeKeyInheritance\JoinedChildClass
|
|
*/
|
|
private function findEntity()
|
|
{
|
|
return $this->_em->find(
|
|
'Doctrine\Tests\Models\CompositeKeyInheritance\JoinedRootClass',
|
|
array('keyPart1' => 'part-1', 'keyPart2' => 'part-2')
|
|
);
|
|
}
|
|
}
|