allow empty strings as time format

This commit is contained in:
Kevin Papst
2020-08-18 15:03:46 +02:00
parent 9597015413
commit 367a901207
2 changed files with 9 additions and 2 deletions

View File

@@ -26,6 +26,10 @@ class TimeFormatValidator extends ConstraintValidator
throw new UnexpectedTypeException($constraint, __NAMESPACE__ . '\TimeFormat');
}
if (null === $value || '' === $value) {
return;
}
if (!is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) {
throw new UnexpectedValueException($value, 'string');
}

View File

@@ -44,7 +44,7 @@ class TimeFormatValidatorTest extends ConstraintValidatorTestCase
/**
* @dataProvider getValidTimes
*/
public function testValidationSucceeds(string $value)
public function testValidationSucceeds(?string $value)
{
$this->validator->validate($value, new TimeFormat());
$this->assertNoViolation();
@@ -53,6 +53,8 @@ class TimeFormatValidatorTest extends ConstraintValidatorTestCase
public function getValidTimes()
{
return [
[''],
[null],
['00:00'],
['00:01'],
['23:00'],
@@ -65,7 +67,7 @@ class TimeFormatValidatorTest extends ConstraintValidatorTestCase
/**
* @dataProvider getInvalidTimes
*/
public function testValidationProblem(string $value)
public function testValidationProblem(?string $value)
{
$this->validator->validate($value, new TimeFormat());
@@ -78,6 +80,7 @@ class TimeFormatValidatorTest extends ConstraintValidatorTestCase
public function getInvalidTimes()
{
return [
['a'],
['1:00'],
['01:1'],
['00:60'],