ClassMetadataFactoryTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Symfony\Tests\Components\Validator\Mapping;
  3. require_once __DIR__.'/../../../../../bootstrap.php';
  4. require_once __DIR__.'/../Fixtures/Entity.php';
  5. require_once __DIR__.'/../Fixtures/ConstraintA.php';
  6. require_once __DIR__.'/../Fixtures/ConstraintB.php';
  7. use Symfony\Tests\Components\Validator\Fixtures\Entity;
  8. use Symfony\Tests\Components\Validator\Fixtures\ConstraintA;
  9. use Symfony\Tests\Components\Validator\Fixtures\ConstraintB;
  10. use Symfony\Components\Validator\Mapping\ClassMetadataFactory;
  11. use Symfony\Components\Validator\Mapping\ClassMetadata;
  12. use Symfony\Components\Validator\Mapping\PropertyMetadata;
  13. use Symfony\Components\Validator\Mapping\Loader\LoaderInterface;
  14. class ClassMetadataFactoryTest extends \PHPUnit_Framework_TestCase
  15. {
  16. const CLASSNAME = 'Symfony\Tests\Components\Validator\Fixtures\Entity';
  17. const PARENTCLASS = 'Symfony\Tests\Components\Validator\Fixtures\EntityParent';
  18. public function testLoadClassMetadata()
  19. {
  20. $factory = new ClassMetadataFactory(new TestLoader());
  21. $metadata = $factory->getClassMetadata(self::PARENTCLASS);
  22. $constraints = array(
  23. new ConstraintA(array('groups' => array('Default', 'EntityParent'))),
  24. );
  25. $this->assertEquals($constraints, $metadata->getConstraints());
  26. }
  27. public function testMergeParentConstraints()
  28. {
  29. $factory = new ClassMetadataFactory(new TestLoader());
  30. $metadata = $factory->getClassMetadata(self::CLASSNAME);
  31. $constraints = array(
  32. new ConstraintA(array('groups' => array(
  33. 'Default',
  34. 'EntityParent',
  35. 'Entity',
  36. ))),
  37. new ConstraintA(array('groups' => array(
  38. 'Default',
  39. 'EntityInterface',
  40. 'Entity',
  41. ))),
  42. new ConstraintA(array('groups' => array(
  43. 'Default',
  44. 'Entity',
  45. ))),
  46. );
  47. $this->assertEquals($constraints, $metadata->getConstraints());
  48. }
  49. }
  50. class TestLoader implements LoaderInterface
  51. {
  52. public function loadClassMetadata(ClassMetadata $metadata)
  53. {
  54. $metadata->addConstraint(new ConstraintA());
  55. }
  56. }