* * 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:----fyGrgOyKsqvQMX74yVNRDjk1ZweYK4SE4z9eaPwKf8nKglOYlsTE3RxDGRzsVxDsysf14wVxJYY+GaZlY0OLSlvZn5sVqQi9gLdOJ1dhI23EGQs+lC5GQeaiRXun9UKvlQ1B+QspclXJ6p9owMtUtlBjaYk9DThUgVwfBXN1yZY+1WK7hYpIF7oM+gV2HEuEf3HdIYxGIIYI06VnakwyeAEm9r4aRpSuVVTXpaCiGeHmwTbZV8ocVlCWho2p5lKadJqlmot3kzIFu03t1zaO28Nm7VgYHYVAdaza6iHmlXHW2pcwh1sWpbk+QkW2y11B6iX/FR01qtWK0DlxcQkPriyhtjBaL8/+FRmZnLfrSBECaCGgYf9YA3EUFuIYsIS+0cbOICGfNpW4afre84XpdRT3Ga1cjiqUOK9KVcW+cvpwYcKbFSHJIqZbHEmlW5jr5ylUGqO9sTcQNbwQLiDsRyk9VpksKDobeB+xA7RfeHer/f4g3qpfHWufF6Ml1SR3bZK2paNq3Y18i8XGr78hFTo0r3bkCJJqy6gb4C8qYQCcpJDWkRJasORTjd70W8HXntq/enZtHtqN6Hf4DtCnnYKMBOuhd+J/KmQdyJ04MbjqtvEALCDI9ly0RJ5yeSSIxpVebAh/xYk8idIZ4C/Hsdjcd9EosNl3Jw4sIjy7O78=----ATTACHMENT:----OTcxOTc4MDE3ODUyOTQ3MiA5NTY0NjM2OTk4Mzg3ODYxIDk2NzAwNDk4MDgxOTQ3NDM=