/** * @covers Yosmanyga\Validation\Validator\ExpressionValueValidator::validate */ public function testValidate() { $expression = 'foo'; $value = 'bar'; $expressionLanguage = $this->getMock('Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage'); $expressionLanguage->expects($this->once())->method('evaluate')->with($expression, array('value' => $value))->will($this->returnValue(false)); /** @var \Symfony\Component\ExpressionLanguage\ExpressionLanguage $expressionLanguage */ $validator = new ExpressionValueValidator($expression, array(), $expressionLanguage); $errors = $validator->validate($value); $r = new \ReflectionClass($validator); $p = $r->getProperty('variables'); $p->setAccessible(true); $this->assertEquals(array('value' => $value), $p->getValue($validator)); $this->assertEquals(array(new Error('This value is not valid')), $errors); // // /** @var \PHPUnit_Framework_MockObject_MockObject $expressionLanguage */ // $expressionLanguage = $this->getMock('Symfony\Component\ExpressionLanguage\ExpressionLanguage'); // $expressionLanguage // ->expects($this->once())->method('evaluate') // ->with($expression, array('value' => $value)) // ->will($this->returnValue(true)); // /** @var \Symfony\Component\ExpressionLanguage\ExpressionLanguage $expressionLanguage */ // $validator = new ExpressionValueValidator($expression, array(), $expressionLanguage); // $errors = $validator->validate($value); // $this->assertEquals(array(), $errors); }
/** * {@inheritdoc} */ public function validate($object, $property) { $this->expressionValueValidator->addVariable('this', $object); $value = $this->propertyAccessor->getValue($object, $property); return $this->expressionValueValidator->validate($value); }