ClassMetadataFactoryTest.php 2.1 KB

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