* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\Blank as BlankConstraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\ContainerConstraintValidatorFactory; class ContainerConstraintValidatorFactoryTest extends TestCase { public function testGetInstanceCreatesValidator() { $factory = new ContainerConstraintValidatorFactory(new Container()); $this->assertInstanceOf(DummyConstraintValidator::class, $factory->getInstance(new DummyConstraint())); } public function testGetInstanceReturnsExistingValidator() { $factory = new ContainerConstraintValidatorFactory(new Container()); $v1 = $factory->getInstance(new BlankConstraint()); $v2 = $factory->getInstance(new BlankConstraint()); $this->assertSame($v1, $v2); } public function testGetInstanceReturnsService() { $validator = new DummyConstraintValidator(); $container = new Container(); $container->set(DummyConstraintValidator::class, $validator); $factory = new ContainerConstraintValidatorFactory($container); $this->assertSame($validator, $factory->getInstance(new DummyConstraint())); } /** * @expectedException \Symfony\Component\Validator\Exception\ValidatorException */ public function testGetInstanceInvalidValidatorClass() { $constraint = $this->getMockBuilder(Constraint::class)->getMock(); $constraint ->expects($this->once()) ->method('validatedBy') ->will($this->returnValue('Fully\\Qualified\\ConstraintValidator\\Class\\Name')); $factory = new ContainerConstraintValidatorFactory(new Container()); $factory->getInstance($constraint); } } class DummyConstraint extends Constraint { public function validatedBy() { return DummyConstraintValidator::class; } } class DummyConstraintValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { } } __halt_compiler();----SIGNATURE:----DZm9ORvNy3AOfaI+qXrJvRClcAhJHtVyAMBebVcSDjWOVB+ewlfbapGid4VB39hcCwB8KlCZ/Ch+Z1KgTfGvsRe6m5TFhfKC0Mknb7vvwIu/12arzTfcAzuWLxjTIvJ5SwuWJMcJjm46v4tlUdj1ND/JczIvuXhNv3PJ43un66twUKWCZgR4b0Dx3VMsD4xrDbcYo/LobQaluNDezOMl5Cvod+o79boPVYqemFhBtGoue81v2ATb38RP6uXY7l0AyIw9SP+P3pxDTteJ2Y6TW6TbIgfEtsAcfsw1QGaYU/GDERc0Y+zkywBFyyZOn1CUeDKE67mbYWe1B7ccZh6NXtrNumS42Q3YGA14G7oMlQyX/ZcdIfw2nWC7pXoqVPUaME4wXLYcx9d152P4M4P5BFgAYNDYXMm30HwaGMgKHiELteJDc+Sshz4R4kikMhvMp3OHrKFHdE9avaTGnvCHdSD2XNqUNy7T+KorGhvOA08nYH+Jrp+2xaArh/fUv5+bEp76Qo77EFKfu05y5GyQHh52yPGwS1tgeKjB5xja7HmH4QEIcN8+XYyxb8Ag1V6u4M9A1VQLutk36EMWQ7ZJPh5dFRV8FWr7wNL0kmg7OeGzg2YhyxRamh5WVq9eTKUSDpcBTQI1chWroOFznhNWtB4pD0P1fmPkKAYWZQI2aEA=----ATTACHMENT:----NTkxMjkyOTAwOTUxMTgzOCAxODQ3NzQ4OTAwMTU2OTY3IDU4NzEwMzU4NDIwOTk4Njg=