/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setNormalizer('constraints', function (Options $options, $constraints) { $constraints = is_object($constraints) ? array($constraints) : (array) $constraints; $constraintObjects = array(); foreach ($constraints as $constraint) { if (is_array($constraint)) { foreach ($constraint as $name => $options) { $constraintObjects[] = $this->constraintFactory->create($name, $options); } } elseif (is_object($constraint)) { $constraintObjects[] = $constraint; } } return $constraintObjects; }); }
/** * {@inheritdoc} */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $constraintsNormalizer = function (Options $options, $constraints) { $constraints = is_object($constraints) ? array($constraints) : (array) $constraints; $constraintObjects = array(); foreach ($constraints as $constraint) { if (is_array($constraint)) { foreach ($constraint as $name => $options) { $constraintObjects[] = $this->constraintFactory->create($name, $options); } } elseif (is_object($constraint)) { $constraintObjects[] = $constraint; } } return $constraintObjects; }; $resolver->setNormalizers(array('constraints' => $constraintsNormalizer)); }
/** * @param array $constraints * @return array|Constraint[] */ protected function getFieldConstraints(array $constraints) { $constraintObjects = []; foreach ($constraints as $constraint) { foreach ($constraint as $name => $options) { $constraintObjects[] = $this->constraintFactory->create($name, $options); } } return $constraintObjects; }
/** * @expectedException \InvalidArgumentException */ public function testCreateInvalidConstraint() { $factory = new ConstraintFactory(); $factory->create('test'); }
/** * @param string $expectedClass * @param string $name * @param mixed $options * @dataProvider createDataProvider */ public function testCreate($expectedClass, $name, $options) { $factory = new ConstraintFactory(); $this->assertInstanceOf($expectedClass, $factory->create($name, $options)); }