public function validate() { $validator = ConfigValidator::getInstance(); if (!$validator->validate($this->data, $this->getContextRules(), $this->extraFieldsAllowed)) { throw new ConfigurationException('Config is not valid for ' . ($this->contextObject ? get_class($this->contextObject) : null) . "\n" . implode("\n", $validator->getErrorsArray(false))); } }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testInvalidTypes() { $type = new UnionType(['name' => 'Car', 'description' => 'Union collect cars types', 'types' => [new IntType()], 'resolveType' => function ($type) { return $type; }]); ConfigValidator::getInstance()->assertValidConfig($type->getConfig()); }
/** * @param AbstractSchema $schema * * @throws ConfigurationException */ public function validate(AbstractSchema $schema) { if (!$schema->getQueryType()->hasFields()) { throw new ConfigurationException('Schema has to have fields'); } $this->configValidator = ConfigValidator::getInstance(); foreach ($schema->getQueryType()->getConfig()->getFields() as $field) { $this->configValidator->assertValidConfig($field->getConfig()); if ($field->getType() instanceof AbstractObjectType) { $this->assertInterfaceImplementationCorrect($field->getType()); } } }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testWithoutValueParams() { $enumField = new EnumType(['values' => [['name' => 'TEST_ENUM']]]); ConfigValidator::getInstance()->assertValidConfig($enumField->getConfig()); }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testEnumConfig() { $enumType = new EnumType(['name' => 'Status', 'values' => [['name' => 'ACTIVE', 'values' => 1]]]); $object = new ObjectType(['name' => 'Project', 'fields' => ['id' => new IdType(), 'status' => $enumType]]); ConfigValidator::getInstance()->assertValidConfig($object->getConfig()); }
/** * @dataProvider invalidInputFieldProvider * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testInvalidInputFieldParams($fieldConfig) { $field = new InputField($fieldConfig); ConfigValidator::getInstance()->assertValidConfig($field->getConfig()); }
public function __construct(AbstractSchema $schema) { $validator = ConfigValidator::getInstance(); $validator->addRule('type', new TypeValidationRule($validator)); parent::__construct($schema); }
protected function setUp() { $this->rule = new TypeValidationRule(ConfigValidator::getInstance()); }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testConfigNoResolve() { ConfigValidator::getInstance()->assertValidConfig(new InterfaceTypeConfig(['name' => 'Test', 'fields' => ['id' => new IntType()]], null, true)); }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testInvalidFieldsParam() { $type = new ObjectType(['name' => 'SomeName', 'fields' => []]); ConfigValidator::getInstance()->assertValidConfig($type->getConfig()); }
/** * @expectedException Youshido\GraphQL\Exception\ConfigurationException */ public function testInvalidConfigInvalidInterface() { ConfigValidator::getInstance()->assertValidConfig(new ObjectTypeConfig(['name' => 'Test', 'interfaces' => ['Invalid interface']], null, false)); }