From e4f74d82908bdc4e8313f3725b2f0f66c5cea6ad Mon Sep 17 00:00:00 2001 From: Benjamin Eberlei Date: Sat, 27 Nov 2010 17:38:12 +0100 Subject: [PATCH] DDC-886 - Bugfix for composite identifier flag not being mapped to child classes in inheritence/mapped superclass scenarios. --- lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 1 + .../Tests/ORM/Mapping/ClassMetadataTest.php | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index 3b3d5eee4..2d6ec7c20 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -940,6 +940,7 @@ class ClassMetadataInfo public function setIdentifier(array $identifier) { $this->identifier = $identifier; + $this->isIdentifierComposite = (count($this->identifier) > 1); } /** diff --git a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php index 34829fcae..3264519e8 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php @@ -276,4 +276,17 @@ class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase $this->assertEquals('cmsaddress_id', $cm->associationMappings['user']['joinTable']['joinColumns'][0]['name']); $this->assertEquals('cmsuser_id', $cm->associationMappings['user']['joinTable']['inverseJoinColumns'][0]['name']); } + + /** + * @group DDC-886 + */ + public function testSetMultipleIdentifierSetsComposite() + { + $cm = new ClassMetadata('Doctrine\Tests\Models\CMS\CmsUser'); + $cm->mapField(array('fieldName' => 'name')); + $cm->mapField(array('fieldName' => 'username')); + + $cm->setIdentifier(array('name', 'username')); + $this->assertTrue($cm->isIdentifierComposite); + } } \ No newline at end of file