use Symfony\Component\Validator\Constraints\ExpressionValidator;
use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
use Symfony\Component\Validator\Tests\Fixtures\Entity;
+use Symfony\Component\Validator\Tests\Fixtures\ToString;
class ExpressionValidatorTest extends ConstraintValidatorTestCase
{
->assertRaised();
}
+ public function testSucceedingExpressionAtObjectLevelWithToString()
+ {
+ $constraint = new Expression('this.data == 1');
+
+ $object = new ToString();
+ $object->data = '1';
+
+ $this->setObject($object);
+
+ $this->validator->validate($object, $constraint);
+
+ $this->assertNoViolation();
+ }
+
+ public function testFailingExpressionAtObjectLevelWithToString()
+ {
+ $constraint = new Expression(array(
+ 'expression' => 'this.data == 1',
+ 'message' => 'myMessage',
+ ));
+
+ $object = new ToString();
+ $object->data = '2';
+
+ $this->setObject($object);
+
+ $this->validator->validate($object, $constraint);
+
+ $this->buildViolation('myMessage')
+ ->setParameter('{{ value }}', 'toString')
+ ->setCode(Expression::EXPRESSION_FAILED_ERROR)
+ ->assertRaised();
+ }
+
public function testSucceedingExpressionAtPropertyLevel()
{
$constraint = new Expression('value == this.data');