diff --git a/src/Symfony/Component/Validator/Mapping/ClassMetadata.php b/src/Symfony/Component/Validator/Mapping/ClassMetadata.php index 3f4f51b83b41..5df8517a479a 100644 --- a/src/Symfony/Component/Validator/Mapping/ClassMetadata.php +++ b/src/Symfony/Component/Validator/Mapping/ClassMetadata.php @@ -350,6 +350,7 @@ public function mergeConstraints(ClassMetadata $source) $member = clone $member; foreach ($member->getConstraints() as $constraint) { + $member->constraintsByGroup[$this->getDefaultGroup()][] = $constraint; $constraint->addImplicitGroupName($this->getDefaultGroup()); } diff --git a/src/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php b/src/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php index a238b1754aa0..34c62445a428 100644 --- a/src/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php +++ b/src/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php @@ -138,16 +138,33 @@ public function testMergeConstraintsMergesMemberConstraints() $this->metadata->mergeConstraints($parent); $this->metadata->addPropertyConstraint('firstName', new ConstraintA()); + $constraintA1 = new ConstraintA(array('groups' => array( + 'Default', + 'EntityParent', + 'Entity', + ))); + $constraintA2 = new ConstraintA(array('groups' => array( + 'Default', + 'Entity', + ))); + $constraints = array( - new ConstraintA(array('groups' => array( - 'Default', - 'EntityParent', - 'Entity', - ))), - new ConstraintA(array('groups' => array( - 'Default', - 'Entity', - ))), + $constraintA1, + $constraintA2, + ); + + $constraintsByGroup = array( + 'Default' => array( + $constraintA1, + $constraintA2, + ), + 'EntityParent' => array( + $constraintA1, + ), + 'Entity' => array( + $constraintA1, + $constraintA2, + ), ); $members = $this->metadata->getPropertyMetadata('firstName'); @@ -155,6 +172,7 @@ public function testMergeConstraintsMergesMemberConstraints() $this->assertCount(1, $members); $this->assertEquals(self::PARENTCLASS, $members[0]->getClassName()); $this->assertEquals($constraints, $members[0]->getConstraints()); + $this->assertEquals($constraintsByGroup, $members[0]->constraintsByGroup); } public function testMemberMetadatas()