コード例 #1
0
 /**
  * @covers Yosmanyga\Validation\Validator\ExceptionValidator::validate
  * @expectedException \RuntimeException
  */
 public function testValidateThrowsExceptionWhenValidatorReturnsErrors()
 {
     $value = 'foo';
     $validator = $this->getMock('Yosmanyga\\Validation\\Validator\\ValidatorInterface');
     $validator->expects($this->once())->method('validate')->with($value)->will($this->returnValue(array(new Error(''))));
     /** @var \Yosmanyga\Validation\Validator\ValidatorInterface $validator */
     $exceptionValidator = new ExceptionValidator($validator);
     $exceptionValidator->validate($value);
 }
コード例 #2
0
ファイル: Definition.php プロジェクト: yosmanyga/resource
 private function validate($data)
 {
     $r = new \ReflectionClass($this);
     $properties = $r->getProperties();
     $allowedKeys = array();
     foreach ($properties as $property) {
         $allowedKeys[] = $property->name;
     }
     $validator = new ExceptionValidator(new ArrayValidator(array('allowedKeys' => $allowedKeys, 'allowExtra' => false)));
     return $validator->validate($data);
 }
コード例 #3
0
ファイル: Normalizer.php プロジェクト: yosmanyga/validation
 protected function normalizeValidators($validators, $resource)
 {
     $validatorValidator = new ExceptionValidator(new ArrayValidator(array('allowedKeys' => array('name', 'option'), 'allowExtra' => false)));
     if (!is_integer(key($validators))) {
         $validators = array($validators);
     }
     $definitions = array();
     foreach ($validators as $validator) {
         $validatorValidator->validate($validator);
         $definitions[] = $this->delegator->normalize(array('value' => $validator), $resource);
     }
     return $definitions;
 }
コード例 #4
0
 /**
  * @param \Yosmanyga\Validation\Resource\Definition\ArrayDefinition $definition
  *
  * @return \Yosmanyga\Validation\Validator\ArrayValidator
  */
 public function compile($definition)
 {
     $validator = new ExceptionValidator($definition->createValidator());
     $validator->validate($definition);
     // Try to compile map option
     // Just works if map is a validator
     try {
         $definition->map = $this->compiler->compile($definition->map);
     } catch (\RuntimeException $e) {
         // Ignore it if fails
         // Map could be a closure or anything else callable
     }
     return new ArrayValidator($definition->export());
 }
コード例 #5
0
ファイル: Normalizer.php プロジェクト: yosmanyga/validation
 protected function normalizeProperties($properties, $resource)
 {
     $validatorValidator = new ExceptionValidator(new ArrayValidator(array('requiredKeys' => array('validator'), 'allowedKeys' => array('options'), 'allowExtra' => false)));
     $definitions = array();
     foreach ($properties as $property => $validators) {
         foreach ($validators as $id => $validator) {
             if (!is_integer($id)) {
                 $validator = array('validator' => $id, 'options' => $validator);
             }
             $validatorValidator->validate($validator);
             $definitions[$property][] = $this->delegator->normalize(array('key' => $validator['validator'], 'value' => $validator['options']), $resource);
         }
     }
     return $definitions;
 }