/**
  * @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);
 }