/**
  * {@inheritdoc}
  */
 public function normalize($data, Resource $resource)
 {
     if (isset($data['value']['option'])) {
         $data['value'] = $this->xmlKit->extractContent($data['value']['option']);
     }
     if (isset($data['value']['map'])) {
         $data['value']['map'] = $this->normalizer->normalize(array('value' => $data['value']['map']), $resource);
     }
     $definition = new ArrayDefinition();
     $definition->import($data['value']);
     return $definition;
 }
Beispiel #2
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());
 }
 public function testCreateValidator()
 {
     $definition = new ArrayDefinition();
     $this->assertInstanceOf('\\Yosmanyga\\Validation\\Validator\\ObjectValidator', $definition->createValidator());
 }
 /**
  * @covers Yosmanyga\Validation\Resource\Compiler\ArrayCompiler::compile
  */
 public function testCompile()
 {
     $compiler = new ArrayCompiler();
     $definition = new ArrayDefinition();
     $this->assertEquals(new ArrayValidator($definition->export()), $compiler->compile($definition));
 }
 /**
  * @param array $data
  *
  * @return \Yosmanyga\Validation\Resource\Definition\ExpressionDefinition
  */
 protected function createDefinition($data)
 {
     $definition = new ArrayDefinition();
     $definition->import($data);
     return $definition;
 }