Example #1
0
 /**
  * @param mixed                        $data
  * @param \Yosmanyga\Resource\Resource $resource
  *
  * @return mixed
  */
 public function normalize($data, Resource $resource)
 {
     $class = '';
     $definitions = array();
     foreach ($data['value'] as $validator) {
         $class = $validator['metadata']['class'];
         if (isset($validator['property'])) {
             $definitions['properties'][$validator['property']][] = $this->delegator->normalize($validator, $resource);
         }
     }
     return $this->createDefinition($class, $definitions);
 }
Example #2
0
 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;
 }
 /**
  * @covers Yosmanyga\Resource\Normalizer\YamlFileDelegatorNormalizer::supports
  */
 public function testSupports()
 {
     $normalizer = new YamlFileDelegatorNormalizer();
     // Right type
     $this->assertTrue($normalizer->supports(null, new Resource(array(), 'yaml')));
     // Wrong type
     $this->assertFalse($normalizer->supports(null, new Resource(array(), 'foo')));
     // No type, file metadata and right extension
     $extensions = array('yaml', 'yml');
     foreach ($extensions as $extension) {
         $this->assertTrue($normalizer->supports(null, new Resource(array('file' => "foo.{$extension}"))));
     }
     // No type, file metadata and wrong extension
     $this->assertFalse($normalizer->supports(null, new Resource(array('file' => 'foo.bar'))));
 }
Example #4
0
 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;
 }