DependencyInjectionValidatorFactoryTest.php 1.9 KB

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