[Validator] Allow `ConstraintViolation::__toString()` to expose codes that are not null or emtpy strings
This commit is contained in:
parent
6d1b296403
commit
7bb0fb5cc3
|
@ -79,13 +79,13 @@ class ConstraintViolation implements ConstraintViolationInterface
|
|||
}
|
||||
|
||||
$propertyPath = (string) $this->propertyPath;
|
||||
$code = $this->code;
|
||||
$code = (string) $this->code;
|
||||
|
||||
if ('' !== $propertyPath && '[' !== $propertyPath[0] && '' !== $class) {
|
||||
$class .= '.';
|
||||
}
|
||||
|
||||
if (!empty($code)) {
|
||||
if ('' !== $code) {
|
||||
$code = ' (code '.$code.')';
|
||||
}
|
||||
|
||||
|
|
|
@ -53,4 +53,59 @@ EOF;
|
|||
|
||||
$this->assertSame($expected, (string) $violation);
|
||||
}
|
||||
|
||||
public function testToStringHandlesCodes()
|
||||
{
|
||||
$violation = new ConstraintViolation(
|
||||
'42 cannot be used here',
|
||||
'this is the message template',
|
||||
array(),
|
||||
array('some_value' => 42),
|
||||
'some_value',
|
||||
null,
|
||||
null,
|
||||
0
|
||||
);
|
||||
|
||||
$expected = <<<'EOF'
|
||||
Array.some_value:
|
||||
42 cannot be used here (code 0)
|
||||
EOF;
|
||||
|
||||
$this->assertSame($expected, (string) $violation);
|
||||
}
|
||||
|
||||
public function testToStringOmitsEmptyCodes()
|
||||
{
|
||||
$expected = <<<'EOF'
|
||||
Array.some_value:
|
||||
42 cannot be used here
|
||||
EOF;
|
||||
|
||||
$violation = new ConstraintViolation(
|
||||
'42 cannot be used here',
|
||||
'this is the message template',
|
||||
array(),
|
||||
array('some_value' => 42),
|
||||
'some_value',
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
$this->assertSame($expected, (string) $violation);
|
||||
|
||||
$violation = new ConstraintViolation(
|
||||
'42 cannot be used here',
|
||||
'this is the message template',
|
||||
array(),
|
||||
array('some_value' => 42),
|
||||
'some_value',
|
||||
null,
|
||||
null,
|
||||
''
|
||||
);
|
||||
|
||||
$this->assertSame($expected, (string) $violation);
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue