merged branch EmmanuelVella/validators (PR #8577)

This PR was merged into the 2.3 branch.

Discussion
----------

Validators

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

This PR avoid comparison validators to be executed if the compared value is null.

Commits
-------

48338fc Ignore null value in comparison validators
This commit is contained in:
Fabien Potencier 2013-08-08 16:01:12 +02:00
commit ffe5567955
9 changed files with 18 additions and 6 deletions

View File

@ -26,6 +26,10 @@ abstract class AbstractComparisonValidator extends ConstraintValidator
*/
public function validate($value, Constraint $constraint)
{
if (null === $value) {
return;
}
if (!$this->compareValues($value, $constraint->value, $constraint)) {
$this->context->addViolation($constraint->message, array(
'{{ value }}' => $this->valueToString($constraint->value),

View File

@ -39,7 +39,8 @@ class EqualToValidatorTest extends AbstractComparisonValidatorTestCase
array(3, 3),
array(3, '3'),
array('a', 'a'),
array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01'))
array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
array(null, 1),
);
}

View File

@ -41,6 +41,7 @@ class GreaterThanOrEqualValidatorTest extends AbstractComparisonValidatorTestCas
array(new \DateTime('2000/01/01'), new \DateTime('2000/01/01')),
array('a', 'a'),
array('z', 'a'),
array(null, 1),
);
}

View File

@ -37,7 +37,8 @@ class GreaterThanValidatorTest extends AbstractComparisonValidatorTestCase
return array(
array(2, 1),
array(new \DateTime('2005/01/01'), new \DateTime('2001/01/01')),
array('333', '22')
array('333', '22'),
array(null, 1),
);
}

View File

@ -40,7 +40,8 @@ class IdenticalToValidatorTest extends AbstractComparisonValidatorTestCase
return array(
array(3, 3),
array('a', 'a'),
array($date, $date)
array($date, $date),
array(null, 1),
);
}

View File

@ -41,6 +41,7 @@ class LessThanOrEqualValidatorTest extends AbstractComparisonValidatorTestCase
array(new \DateTime('2000-01-01'), new \DateTime('2020-01-01')),
array('a', 'a'),
array('a', 'z'),
array(null, 1),
);
}

View File

@ -37,7 +37,8 @@ class LessThanValidatorTest extends AbstractComparisonValidatorTestCase
return array(
array(1, 2),
array(new \DateTime('2000-01-01'), new \DateTime('2010-01-01')),
array('22', '333')
array('22', '333'),
array(null, 1),
);
}

View File

@ -38,7 +38,8 @@ class NotEqualToValidatorTest extends AbstractComparisonValidatorTestCase
return array(
array(1, 2),
array('22', '333'),
array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01'))
array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01')),
array(null, 1),
);
}

View File

@ -40,7 +40,8 @@ class NotIdenticalToValidatorTest extends AbstractComparisonValidatorTestCase
array('2', 2),
array('22', '333'),
array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01')),
array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01'))
array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
array(null, 1),
);
}