/** * @param \Symfony\Component\Validator\Constraint $constraint */ protected function validate(Constraint $constraint) { $subPath = (string) $this->getCurrentPropertyPath(); if ($this->context instanceof LegacyExecutionContextInterface) { $this->context->validateValue($this->getValue(), $constraint, $subPath, $this->group); } else { $this->context->getValidator()->inContext($this->context)->atPath($subPath)->validate($this->getValue(), $constraint, array($this->group)); } }
public function checkEmailList($value, ExecutionContextInterface $context) { $list = preg_split('/[,;]/', $value); $emailValidator = new Constraints\Email(); foreach ($list as $email) { $email = trim($email); $context->getValidator()->validate($email, $emailValidator); } }
function it_does_not_validate_false_condition($constraint, NewContext $context, ValidatorInterface $validator, ContextualValidatorInterface $contextValidator) { $constraint->condition = function () { return false; }; $context->getObject()->shouldBeCalled(); $context->getValidator()->shouldNotBeCalled(); $context->validateValue(Argument::any(), Argument::any(), Argument::any(), Argument::any())->shouldNotBeCalled(); $this->initialize($context); $this->validate('some value', $constraint); }
protected function expectValidateValueAt($i, $propertyPath, $value, $constraints, $group = null) { switch ($this->getApiVersion()) { case Validation::API_VERSION_2_4: $this->context->expects($this->at($i))->method('validateValue')->with($value, $constraints, $propertyPath, $group); break; case Validation::API_VERSION_2_5: case Validation::API_VERSION_2_5_BC: $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); break; } }
function it_checks_if_attribute_value_is_valid(AttributeInterface $attribute, AttributeValueInterface $attributeValue, ConstraintViolationBuilderInterface $constraintViolationBuilder, ConstraintViolationInterface $constraintViolation, ConstraintViolationListInterface $constraintViolationList, ExecutionContextInterface $context, ValidatorInterface $validator) { $attributeValue->getAttribute()->willReturn($attribute); $attributeValue->getValue()->willReturn('X'); $context->getValidator()->willReturn($validator); $validator->validate('X', Argument::type(Length::class))->willReturn($constraintViolationList); $constraintViolationList->rewind()->shouldBeCalled(); $constraintViolationList->valid()->willReturn(true, false); $constraintViolationList->current()->willReturn($constraintViolation); $constraintViolationList->next()->shouldBeCalled(); $constraintViolation->getMessage()->willReturn('error message'); $context->buildViolation('error message')->willReturn($constraintViolationBuilder); $constraintViolationBuilder->atPath('value')->willReturn($constraintViolationBuilder); $constraintViolationBuilder->addViolation()->shouldBeCalled(); $this->validate($attributeValue, $context, ['min' => 2, 'max' => 255]); }
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); }
/** * @param ExecutionContextInterface $context * @param string $value * @param array $validationConfiguration * * @return ConstraintViolationListInterface */ private function getValidationErrors(ExecutionContextInterface $context, $value, array $validationConfiguration) { $validator = $context->getValidator(); return $validator->validate($value, new Length(['min' => $validationConfiguration['min'], 'max' => $validationConfiguration['max']])); }
/** * {@inheritdoc} */ private function getValidationErrors(ExecutionContextInterface $context, $value, array $validationConfiguration) { $validator = $context->getValidator(); return $validator->validate($value, new GreaterThan(new \DateTime())); }
/** * @param ExecutionContextInterface $context * @param AttributeInterface $attribute * @param DataInterface $data * * @throws Exception */ protected function validateRules(ExecutionContextInterface $context, AttributeInterface $attribute, DataInterface $data) { if ($attribute->isMultiple()) { $valueData = $data->getValuesData($attribute); } else { $valueData = $data->getValueData($attribute); } $loader = new BaseLoader(); foreach ($attribute->getValidationRules() as $validationRule) { foreach ($validationRule as $item => $options) { $constraint = $loader->newConstraint($item, $options); $violations = $context->getValidator()->validate($valueData, $constraint, $context->getGroup()); /** @var ConstraintViolationInterface $violation */ foreach ($violations as $violation) { /** @noinspection DisconnectedForeachInstructionInspection */ $path = $attribute->getCode(); if ($attribute->getType()->isEmbedded()) { if (!$attribute->isMultiple()) { $path .= '.'; } $path .= $violation->getPropertyPath(); } if ($violation->getMessage()) { $context->buildViolation($violation->getMessage())->atPath($path)->setInvalidValue($valueData)->addViolation(); } else { $this->buildAttributeViolation($context, $attribute, strtolower($item), $valueData, $path); } } } } }