RomaricDrigon\MetaYaml\NodeValidator\NodeValidatorFactory::getValidator PHP Method

getValidator() public method

public getValidator ( $name, $type, SchemaValidator $validator )
$validator RomaricDrigon\MetaYaml\SchemaValidator
    public function getValidator($name, $type, SchemaValidator $validator)
    {
        switch ($type) {
            case 'number':
                return new NumberNodeValidator($validator);
            case 'text':
                return new TextNodeValidator($validator);
            case 'pattern':
                return new PatternNodeValidator($validator);
            case 'boolean':
                return new BooleanNodeValidator($validator);
            case 'enum':
                return new EnumNodeValidator($validator);
            case 'array':
                return new ArrayNodeValidator($validator);
            case 'prototype':
                return new PrototypeNodeValidator($validator);
            case 'choice':
                return new ChoiceNodeValidator($validator);
            case 'partial':
                return new PartialNodeValidator($validator);
            default:
                throw new NodeValidatorException($name, 'Unknown validator type : ' . $type);
        }
    }

Usage Example

 public function testAll()
 {
     $this->if($schema_validator = new SchemaValidator())->and($object = new testedClass())->then->object($object->getValidator('test', 'number', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\NumberNodeValidator')->object($object->getValidator('test', 'text', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\TextNodeValidator')->object($object->getValidator('test', 'pattern', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\PatternNodeValidator')->object($object->getValidator('test', 'boolean', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\BooleanNodeValidator')->object($object->getValidator('test', 'enum', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\EnumNodeValidator')->object($object->getValidator('test', 'array', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\ArrayNodeValidator')->object($object->getValidator('test', 'prototype', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\PrototypeNodeValidator')->object($object->getValidator('test', 'choice', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\ChoiceNodeValidator')->object($object->getValidator('test', 'partial', $schema_validator))->isInstanceOf('RomaricDrigon\\MetaYaml\\NodeValidator\\PartialNodeValidator')->exception(function () use($object, $schema_validator) {
         $object->getValidator('test', 'random_stuff', $schema_validator);
     })->hasMessage('Unknown validator type : random_stuff');
 }
NodeValidatorFactory