X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fvalidator%2FTests%2FConstraints%2FAbstractConstraintValidatorTest.php;fp=vendor%2Fsymfony%2Fvalidator%2FTests%2FConstraints%2FAbstractConstraintValidatorTest.php;h=52af8991fe0fc8a247cca697d7baca102c0fc61a;hp=7fd982cd1779fc561ed2c1cebe36bbe91b54f415;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php b/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php index 7fd982cd1..52af8991f 100644 --- a/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php +++ b/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php @@ -11,431 +11,11 @@ namespace Symfony\Component\Validator\Tests\Constraints; -use PHPUnit\Framework\Assert; -use PHPUnit\Framework\TestCase; -use Symfony\Component\Validator\Constraint; -use Symfony\Component\Validator\Constraints\NotNull; -use Symfony\Component\Validator\ConstraintValidatorInterface; -use Symfony\Component\Validator\ConstraintViolation; -use Symfony\Component\Validator\Context\ExecutionContext; -use Symfony\Component\Validator\Context\ExecutionContextInterface; -use Symfony\Component\Validator\Context\LegacyExecutionContext; -use Symfony\Component\Validator\ExecutionContextInterface as LegacyExecutionContextInterface; -use Symfony\Component\Validator\Mapping\ClassMetadata; -use Symfony\Component\Validator\Mapping\PropertyMetadata; -use Symfony\Component\Validator\Validation; +use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; /** - * @author Bernhard Schussek + * @deprecated Since Symfony 3.2, use ConstraintValidatorTestCase instead. */ -abstract class AbstractConstraintValidatorTest extends TestCase +abstract class AbstractConstraintValidatorTest extends ConstraintValidatorTestCase { - /** - * @var ExecutionContextInterface - */ - protected $context; - - /** - * @var ConstraintValidatorInterface - */ - protected $validator; - - protected $group; - protected $metadata; - protected $object; - protected $value; - protected $root; - protected $propertyPath; - protected $constraint; - protected $defaultTimezone; - - protected function setUp() - { - $this->group = 'MyGroup'; - $this->metadata = null; - $this->object = null; - $this->value = 'InvalidValue'; - $this->root = 'root'; - $this->propertyPath = 'property.path'; - - // Initialize the context with some constraint so that we can - // successfully build a violation. - $this->constraint = new NotNull(); - - $this->context = $this->createContext(); - $this->validator = $this->createValidator(); - $this->validator->initialize($this->context); - - \Locale::setDefault('en'); - - $this->setDefaultTimezone('UTC'); - } - - protected function tearDown() - { - $this->restoreDefaultTimezone(); - } - - protected function setDefaultTimezone($defaultTimezone) - { - // Make sure this method can not be called twice before calling - // also restoreDefaultTimezone() - if (null === $this->defaultTimezone) { - $this->defaultTimezone = date_default_timezone_get(); - date_default_timezone_set($defaultTimezone); - } - } - - protected function restoreDefaultTimezone() - { - if (null !== $this->defaultTimezone) { - date_default_timezone_set($this->defaultTimezone); - $this->defaultTimezone = null; - } - } - - protected function createContext() - { - $translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock(); - $validator = $this->getMockBuilder('Symfony\Component\Validator\Validator\ValidatorInterface')->getMock(); - $contextualValidator = $this->getMockBuilder('Symfony\Component\Validator\Validator\ContextualValidatorInterface')->getMock(); - - switch ($this->getApiVersion()) { - case Validation::API_VERSION_2_5: - $context = new ExecutionContext( - $validator, - $this->root, - $translator - ); - break; - case Validation::API_VERSION_2_4: - case Validation::API_VERSION_2_5_BC: - $context = new LegacyExecutionContext( - $validator, - $this->root, - $this->getMockBuilder('Symfony\Component\Validator\MetadataFactoryInterface')->getMock(), - $translator - ); - break; - default: - throw new \RuntimeException('Invalid API version'); - } - - $context->setGroup($this->group); - $context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); - $context->setConstraint($this->constraint); - - $validator->expects($this->any()) - ->method('inContext') - ->with($context) - ->will($this->returnValue($contextualValidator)); - - return $context; - } - - /** - * @param mixed $message - * @param array $parameters - * @param string $propertyPath - * @param string $invalidValue - * @param null $plural - * @param null $code - * - * @return ConstraintViolation - * - * @deprecated to be removed in Symfony 3.0. Use {@link buildViolation()} instead. - */ - protected function createViolation($message, array $parameters = array(), $propertyPath = 'property.path', $invalidValue = 'InvalidValue', $plural = null, $code = null) - { - return new ConstraintViolation( - null, - $message, - $parameters, - $this->root, - $propertyPath, - $invalidValue, - $plural, - $code, - $this->constraint - ); - } - - protected function setGroup($group) - { - $this->group = $group; - $this->context->setGroup($group); - } - - protected function setObject($object) - { - $this->object = $object; - $this->metadata = is_object($object) - ? new ClassMetadata(get_class($object)) - : null; - - $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); - } - - protected function setProperty($object, $property) - { - $this->object = $object; - $this->metadata = is_object($object) - ? new PropertyMetadata(get_class($object), $property) - : null; - - $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); - } - - protected function setValue($value) - { - $this->value = $value; - $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); - } - - protected function setRoot($root) - { - $this->root = $root; - $this->context = $this->createContext(); - $this->validator->initialize($this->context); - } - - protected function setPropertyPath($propertyPath) - { - $this->propertyPath = $propertyPath; - $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath); - } - - protected function expectNoValidate() - { - $validator = $this->context->getValidator()->inContext($this->context); - $validator->expects($this->never()) - ->method('atPath'); - $validator->expects($this->never()) - ->method('validate'); - } - - protected function expectValidateAt($i, $propertyPath, $value, $group) - { - $validator = $this->context->getValidator()->inContext($this->context); - $validator->expects($this->at(2 * $i)) - ->method('atPath') - ->with($propertyPath) - ->will($this->returnValue($validator)); - $validator->expects($this->at(2 * $i + 1)) - ->method('validate') - ->with($value, $this->logicalOr(null, array(), $this->isInstanceOf('\Symfony\Component\Validator\Constraints\Valid')), $group); - } - - protected function expectValidateValueAt($i, $propertyPath, $value, $constraints, $group = null) - { - $contextualValidator = $this->context->getValidator()->inContext($this->context); - $contextualValidator->expects($this->at(2 * $i)) - ->method('atPath') - ->with($propertyPath) - ->will($this->returnValue($contextualValidator)); - $contextualValidator->expects($this->at(2 * $i + 1)) - ->method('validate') - ->with($value, $constraints, $group); - } - - protected function assertNoViolation() - { - $this->assertSame(0, $violationsCount = count($this->context->getViolations()), sprintf('0 violation expected. Got %u.', $violationsCount)); - } - - /** - * @param mixed $message - * @param array $parameters - * @param string $propertyPath - * @param string $invalidValue - * @param null $plural - * @param null $code - * - * @deprecated To be removed in Symfony 3.0. Use - * {@link buildViolation()} instead. - */ - protected function assertViolation($message, array $parameters = array(), $propertyPath = 'property.path', $invalidValue = 'InvalidValue', $plural = null, $code = null) - { - @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Use the buildViolation() method instead.', E_USER_DEPRECATED); - - $this->buildViolation($message) - ->setParameters($parameters) - ->atPath($propertyPath) - ->setInvalidValue($invalidValue) - ->setCode($code) - ->setPlural($plural) - ->assertRaised(); - } - - /** - * @param array $expected - * - * @deprecated To be removed in Symfony 3.0. Use - * {@link buildViolation()} instead. - */ - protected function assertViolations(array $expected) - { - @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Use the buildViolation() method instead.', E_USER_DEPRECATED); - - $violations = $this->context->getViolations(); - - $this->assertCount(count($expected), $violations); - - $i = 0; - - foreach ($expected as $violation) { - $this->assertEquals($violation, $violations[$i++]); - } - } - - /** - * @param $message - * - * @return ConstraintViolationAssertion - */ - protected function buildViolation($message) - { - return new ConstraintViolationAssertion($this->context, $message, $this->constraint); - } - - protected function getApiVersion() - { - return Validation::API_VERSION_2_5; - } - - abstract protected function createValidator(); -} - -/** - * @internal - */ -class ConstraintViolationAssertion -{ - /** - * @var LegacyExecutionContextInterface - */ - private $context; - - /** - * @var ConstraintViolationAssertion[] - */ - private $assertions; - - private $message; - private $parameters = array(); - private $invalidValue = 'InvalidValue'; - private $propertyPath = 'property.path'; - private $translationDomain; - private $plural; - private $code; - private $constraint; - private $cause; - - public function __construct(LegacyExecutionContextInterface $context, $message, Constraint $constraint = null, array $assertions = array()) - { - $this->context = $context; - $this->message = $message; - $this->constraint = $constraint; - $this->assertions = $assertions; - } - - public function atPath($path) - { - $this->propertyPath = $path; - - return $this; - } - - public function setParameter($key, $value) - { - $this->parameters[$key] = $value; - - return $this; - } - - public function setParameters(array $parameters) - { - $this->parameters = $parameters; - - return $this; - } - - public function setTranslationDomain($translationDomain) - { - $this->translationDomain = $translationDomain; - - return $this; - } - - public function setInvalidValue($invalidValue) - { - $this->invalidValue = $invalidValue; - - return $this; - } - - public function setPlural($number) - { - $this->plural = $number; - - return $this; - } - - public function setCode($code) - { - $this->code = $code; - - return $this; - } - - public function setCause($cause) - { - $this->cause = $cause; - - return $this; - } - - public function buildNextViolation($message) - { - $assertions = $this->assertions; - $assertions[] = $this; - - return new self($this->context, $message, $this->constraint, $assertions); - } - - public function assertRaised() - { - $expected = array(); - foreach ($this->assertions as $assertion) { - $expected[] = $assertion->getViolation(); - } - $expected[] = $this->getViolation(); - - $violations = iterator_to_array($this->context->getViolations()); - - Assert::assertSame($expectedCount = count($expected), $violationsCount = count($violations), sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount)); - - reset($violations); - - foreach ($expected as $violation) { - Assert::assertEquals($violation, current($violations)); - next($violations); - } - } - - private function getViolation() - { - return new ConstraintViolation( - null, - $this->message, - $this->parameters, - $this->context->getRoot(), - $this->propertyPath, - $this->invalidValue, - $this->plural, - $this->code, - $this->constraint, - $this->cause - ); - } }