XmlFileLoaderTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Symfony\Tests\Component\Validator\Mapping\Loader;
  3. require_once __DIR__.'/../../Fixtures/Entity.php';
  4. require_once __DIR__.'/../../Fixtures/ConstraintA.php';
  5. use Symfony\Component\Validator\Constraints\All;
  6. use Symfony\Component\Validator\Constraints\Collection;
  7. use Symfony\Component\Validator\Constraints\NotNull;
  8. use Symfony\Component\Validator\Constraints\Min;
  9. use Symfony\Component\Validator\Constraints\Choice;
  10. use Symfony\Component\Validator\Mapping\ClassMetadata;
  11. use Symfony\Component\Validator\Mapping\Loader\XmlFileLoader;
  12. use Symfony\Tests\Component\Validator\Fixtures\ConstraintA;
  13. class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
  14. {
  15. public function testLoadClassMetadataReturnsTrueIfSuccessful()
  16. {
  17. $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
  18. $metadata = new ClassMetadata('Symfony\Tests\Component\Validator\Fixtures\Entity');
  19. $this->assertTrue($loader->loadClassMetadata($metadata));
  20. }
  21. public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
  22. {
  23. $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
  24. $metadata = new ClassMetadata('\stdClass');
  25. $this->assertFalse($loader->loadClassMetadata($metadata));
  26. }
  27. public function testLoadClassMetadata()
  28. {
  29. $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
  30. $metadata = new ClassMetadata('Symfony\Tests\Component\Validator\Fixtures\Entity');
  31. $loader->loadClassMetadata($metadata);
  32. $expected = new ClassMetadata('Symfony\Tests\Component\Validator\Fixtures\Entity');
  33. $expected->addConstraint(new NotNull());
  34. $expected->addConstraint(new ConstraintA());
  35. $expected->addConstraint(new Min(3));
  36. $expected->addConstraint(new Choice(array('A', 'B')));
  37. $expected->addConstraint(new All(array(new NotNull(), new Min(3))));
  38. $expected->addConstraint(new All(array('constraints' => array(new NotNull(), new Min(3)))));
  39. $expected->addConstraint(new Collection(array('fields' => array(
  40. 'foo' => array(new NotNull(), new Min(3)),
  41. 'bar' => array(new Min(5)),
  42. ))));
  43. $expected->addPropertyConstraint('firstName', new Choice(array(
  44. 'message' => 'Must be one of %choices%',
  45. 'choices' => array('A', 'B'),
  46. )));
  47. $expected->addGetterConstraint('lastName', new NotNull());
  48. $this->assertEquals($expected, $metadata);
  49. }
  50. }