|
15 | 15 | use Symfony\Component\Validator\Constraints\ExpressionValidator;
|
16 | 16 | use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
|
17 | 17 | use Symfony\Component\Validator\Tests\Fixtures\Entity;
|
| 18 | +use Symfony\Component\Validator\Tests\Fixtures\ToString; |
18 | 19 |
|
19 | 20 | class ExpressionValidatorTest extends ConstraintValidatorTestCase
|
20 | 21 | {
|
@@ -87,6 +88,40 @@ public function testFailingExpressionAtObjectLevel()
|
87 | 88 | ->assertRaised();
|
88 | 89 | }
|
89 | 90 |
|
| 91 | + public function testSucceedingExpressionAtObjectLevelWithToString() |
| 92 | + { |
| 93 | + $constraint = new Expression('this.data == 1'); |
| 94 | + |
| 95 | + $object = new ToString(); |
| 96 | + $object->data = '1'; |
| 97 | + |
| 98 | + $this->setObject($object); |
| 99 | + |
| 100 | + $this->validator->validate($object, $constraint); |
| 101 | + |
| 102 | + $this->assertNoViolation(); |
| 103 | + } |
| 104 | + |
| 105 | + public function testFailingExpressionAtObjectLevelWithToString() |
| 106 | + { |
| 107 | + $constraint = new Expression(array( |
| 108 | + 'expression' => 'this.data == 1', |
| 109 | + 'message' => 'myMessage', |
| 110 | + )); |
| 111 | + |
| 112 | + $object = new ToString(); |
| 113 | + $object->data = '2'; |
| 114 | + |
| 115 | + $this->setObject($object); |
| 116 | + |
| 117 | + $this->validator->validate($object, $constraint); |
| 118 | + |
| 119 | + $this->buildViolation('myMessage') |
| 120 | + ->setParameter('{{ value }}', 'toString') |
| 121 | + ->setCode(Expression::EXPRESSION_FAILED_ERROR) |
| 122 | + ->assertRaised(); |
| 123 | + } |
| 124 | + |
90 | 125 | public function testSucceedingExpressionAtPropertyLevel()
|
91 | 126 | {
|
92 | 127 | $constraint = new Expression('value == this.data');
|
|
0 commit comments