[Validator][GroupSequence] fixed GroupSequence validation ignores PropertyMetadata of parent classes

This commit is contained in:
Sandro Hopf 2016-07-21 09:37:47 +02:00 committed by Fabien Potencier
parent 6de4359e4b
commit 54a7eff868
2 changed files with 28 additions and 9 deletions

View File

@ -350,6 +350,7 @@ class ClassMetadata extends ElementMetadata implements ClassMetadataInterface
$member = clone $member;
foreach ($member->getConstraints() as $constraint) {
$member->constraintsByGroup[$this->getDefaultGroup()][] = $constraint;
$constraint->addImplicitGroupName($this->getDefaultGroup());
}

View File

@ -138,16 +138,33 @@ class ClassMetadataTest extends \PHPUnit_Framework_TestCase
$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 @@ class ClassMetadataTest extends \PHPUnit_Framework_TestCase
$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()