* * 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:----fv9qCZp59qsAyPXS4zQTfejCqg7NygEC73+MXsQ5ANHaqWYfKvuuRrpcPRman1FyfXKOEHFmz+37T9MHSsxyn0rEbP+rsWhkFG8FHnZnhknbvOW5ud+RIu2+Q+Y7gmOHuD2VlGPziFS7gHIdVYbc6tZGKPtwOjCwjy1BVtbwquRgaplXKJhqmAyAFMiWWWUl6D7G6ft8iNcEsIDWblGxrGm4k9P0MyoCCYAsxvB9Y/84mWBkTCGBsel1lF9bk+M5stqTA33XX8JYd3VdDtLcX0PvTZoYzbN+2dApFif1Rw34PeRMRpjOwPy+tvY5ZYE2m8mNAav7tAMEATMng1iIMNGkT6xPXEs3FljENTF7ztai9w1+acPDCIweEdktAra3WgD4nWr9QXdLhQ3oLcifwmCc2uEkWEw6xDsUx/4+DVrTrE1op4vlNgL4upcoMaf42wgqVuiZzW8SeAT1bfDx9umjIGLzaBydSrErlW0x6Jquxm/Gd2OmSZa+U+Lq9Ro4l/UVAP75z7dzYA2tLXhas1CnE85FvzD8ZWbbCoM+CvWgCPkrqk/4zT24swrPSaS84TtvRFyssHUrnctfgVYQBkgiRnBGZYpuSu9l2PGbDgNi/gZvdNe/y54wuFwyoc3qgaqm9mG/6N646zRTzbaVvpTAAG3YWjXUglB/Xe1Eqy0=----ATTACHMENT:----NDU1NDQ3NDc4MjE2ODA1NyAyNDQ2Njg0MzM3NjU0NzQgNjgwNjk0MTkxMjM1NTA0Mw==