/**
  * @dataProvider providerIsValid
  */
 public function testIsValid($value, $expected)
 {
     $regex = '/regex/';
     $code = 'error.validation.regex';
     $message = 'Field does not match ' . $regex;
     $validator = new RegexValidator(array('regex' => $regex));
     $result = $validator->isValid($value);
     $this->assertEquals($expected, $result, $value);
     if (!$expected) {
         $expectedParameters = array('value' => $value, 'regex' => $regex);
         $expectedErrors = array(new ValidationError($code, $message, $expectedParameters));
         $resultErrors = $validator->getErrors();
         $this->assertEquals($expectedErrors, $resultErrors);
     }
 }
 protected function performRegexTest($tests, $property)
 {
     $validator = new UrlValidator();
     $regex = Reflection::getProperty($validator, $property);
     $regexValidator = new RegexValidator(array('regex' => '/^' . $regex . '$/'));
     foreach ($tests as $test) {
         $result = $regexValidator->isValid($test['value']);
         $this->assertEquals($test['expected'], $result, $test['value'] . ' - ' . $regex);
     }
 }