DependencyInjectionValidatorFactoryTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Symfony\Tests\Component\Validator;
  3. require_once __DIR__.'/Fixtures/InvalidConstraint.php';
  4. require_once __DIR__.'/Fixtures/InvalidConstraintValidator.php';
  5. use Symfony\Component\Validator\Extension\DependencyInjectionValidatorFactory;
  6. use Symfony\Component\DependencyInjection\Container;
  7. use Symfony\Component\Validator\Constraints\Valid;
  8. use Symfony\Component\Validator\Constraints\ValidValidator;
  9. use Symfony\Tests\Component\Validator\Fixtures\InvalidConstraint;
  10. class DependencyInjectionValidatorFactoryTest extends \PHPUnit_Framework_TestCase
  11. {
  12. protected $container;
  13. protected $factory;
  14. public function setUp()
  15. {
  16. $this->container = new Container();
  17. $this->factory = new DependencyInjectionValidatorFactory($this->container);
  18. }
  19. public function tearDown()
  20. {
  21. unset ($this->factory);
  22. unset ($this->container);
  23. }
  24. public function testGetInstanceRetunsCorrectValidatorInstance()
  25. {
  26. $constraint = new Valid();
  27. $validator = $this->factory->getInstance($constraint);
  28. $this->assertTrue($validator instanceof ValidValidator);
  29. }
  30. public function testGetInstanceAddsValidatorServiceToContainer()
  31. {
  32. $constraint = new Valid();
  33. $validator = $this->factory->getInstance($constraint);
  34. $this->assertServiceExists('Symfony.Component.Validator.Constraints.ValidValidator');
  35. }
  36. public function assertServiceExists($id)
  37. {
  38. $this->assertTrue($this->container->has($id), 'Service ' . $id . ' doesn\'t exist on container');
  39. }
  40. /**
  41. * @expectedException LogicException
  42. */
  43. public function testGetInstanceThrowsLogicExceptionIfValidatorNotInstanceOfValidatorInterface()
  44. {
  45. $constraint = new InvalidConstraint();
  46. $validator = $this->factory->getInstance($constraint);
  47. }
  48. }