property constraints can be added in child classes
This commit is contained in:
parent
a266ff799c
commit
9513a8aa52
@ -346,10 +346,6 @@ class ClassMetadata extends ElementMetadata implements ClassMetadataInterface
|
||||
}
|
||||
|
||||
foreach ($source->getConstrainedProperties() as $property) {
|
||||
if ($this->hasPropertyMetadata($property)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($source->getPropertyMetadata($property) as $member) {
|
||||
$member = clone $member;
|
||||
|
||||
|
@ -12,7 +12,6 @@
|
||||
namespace Symfony\Component\Validator\Tests\Mapping;
|
||||
|
||||
use Symfony\Component\Validator\Constraint;
|
||||
use Symfony\Component\Validator\Constraints\GreaterThan;
|
||||
use Symfony\Component\Validator\Constraints\Valid;
|
||||
use Symfony\Component\Validator\Mapping\ClassMetadata;
|
||||
use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
|
||||
@ -304,21 +303,6 @@ class ClassMetadataTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
$this->assertCount(0, $this->metadata->getPropertyMetadata('foo'), '->getPropertyMetadata() returns an empty collection if no metadata is configured for the given property');
|
||||
}
|
||||
|
||||
public function testMergeDoesOverrideConstraintsFromParentClassIfPropertyIsOverriddenInChildClass()
|
||||
{
|
||||
$parentMetadata = new ClassMetadata('\Symfony\Component\Validator\Tests\Mapping\ParentClass');
|
||||
$parentMetadata->addPropertyConstraint('example', new GreaterThan(0));
|
||||
|
||||
$childMetadata = new ClassMetadata('\Symfony\Component\Validator\Tests\Mapping\ChildClass');
|
||||
$childMetadata->addPropertyConstraint('example', new GreaterThan(1));
|
||||
$childMetadata->mergeConstraints($parentMetadata);
|
||||
|
||||
$expectedMetadata = new ClassMetadata('\Symfony\Component\Validator\Tests\Mapping\ChildClass');
|
||||
$expectedMetadata->addPropertyConstraint('example', new GreaterThan(1));
|
||||
|
||||
$this->assertEquals($expectedMetadata, $childMetadata);
|
||||
}
|
||||
}
|
||||
|
||||
class ParentClass
|
||||
|
@ -174,10 +174,14 @@ class LazyLoadingMetadataFactoryTest extends \PHPUnit_Framework_TestCase
|
||||
$reader = new \Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader();
|
||||
$factory = new LazyLoadingMetadataFactory($reader);
|
||||
$metadata = $factory->getMetadataFor('Symfony\Component\Validator\Tests\Fixtures\EntityStaticCarTurbo');
|
||||
$classMetaData = $metadata->getPropertyMetadata('wheels');
|
||||
$constraints = $classMetaData[0]->getConstraints();
|
||||
$groups = $constraints[0]->groups;
|
||||
$groups = array();
|
||||
|
||||
foreach ($metadata->getPropertyMetadata('wheels') as $propertyMetadata) {
|
||||
$constraints = $propertyMetadata->getConstraints();
|
||||
$groups = array_replace($groups, $constraints[0]->groups);
|
||||
}
|
||||
|
||||
$this->assertCount(4, $groups);
|
||||
$this->assertContains('Default', $groups);
|
||||
$this->assertContains('EntityStaticCarTurbo', $groups);
|
||||
$this->assertContains('EntityStaticCar', $groups);
|
||||
|
Reference in New Issue
Block a user