function expectInvalid($schema, $rules, $queryString, $errors) { $result = DocumentValidator::validate($schema, Parser::parse($queryString), $rules); $this->assertEquals(false, $result['isValid'], 'GraphQL should not validate'); $this->assertEquals($errors, $result['errors']); return $result; }
function expectInvalid($schema, $rules, $queryString, $expectedErrors) { $errors = DocumentValidator::validate($schema, Parser::parse($queryString), $rules); $this->assertNotEmpty($errors, 'GraphQL should not validate'); $this->assertEquals($expectedErrors, array_map(['GraphQL\\Error\\Error', 'formatError'], $errors)); return $errors; }
/** * @param Schema $schema * @param $requestString * @param mixed $rootValue * @param array <string, string>|null $variableValues * @param string|null $operationName * @return array */ public static function execute(Schema $schema, $requestString, $rootValue = null, $variableValues = null, $operationName = null) { try { $source = new Source($requestString ?: '', 'GraphQL request'); $documentAST = Parser::parse($source); $validationErrors = DocumentValidator::validate($schema, $documentAST); if (!empty($validationErrors)) { return ['errors' => array_map(['GraphQL\\Error', 'formatError'], $validationErrors)]; } else { return Executor::execute($schema, $documentAST, $rootValue, $variableValues, $operationName)->toArray(); } } catch (Error $e) { return ['errors' => [Error::formatError($e)]]; } }
/** * @param Schema $schema * @param $requestString * @param null $rootValue * @param null $variableValues * @param null $operationName * @return array|ExecutionResult */ public static function executeAndReturnResult(Schema $schema, $requestString, $rootValue = null, $variableValues = null, $operationName = null) { try { $source = new Source($requestString ?: '', 'GraphQL request'); $documentAST = Parser::parse($source); $validationErrors = DocumentValidator::validate($schema, $documentAST); if (!empty($validationErrors)) { return new ExecutionResult(null, $validationErrors); } else { return Executor::execute($schema, $documentAST, $rootValue, $variableValues, $operationName); } } catch (Error $e) { return new ExecutionResult(null, [$e]); } }
/** * @param Schema $schema * @param $requestString * @param mixed $rootObject * @param array <string, string>|null $variableValues * @param string|null $operationName * @return array */ public static function execute(Schema $schema, $requestString, $rootObject = null, $variableValues = null, $operationName = null) { try { $source = new Source($requestString ?: '', 'GraphQL request'); $ast = Parser::parse($source); $validationResult = DocumentValidator::validate($schema, $ast); if (empty($validationResult['isValid'])) { return ['errors' => $validationResult['errors']]; } else { return Executor::execute($schema, $rootObject, $ast, $operationName, $variableValues); } } catch (\Exception $e) { return ['errors' => Error::formatError($e)]; } }
/** * @param Schema $schema * @param $requestString * @param null $rootValue * @param null $variableValues * @param null $operationName * @return array|ExecutionResult */ public static function executeAndReturnResult(Schema $schema, $requestString, $rootValue = null, $contextValue = null, $variableValues = null, $operationName = null) { try { if ($requestString instanceof Document) { $documentAST = $requestString; } else { $source = new Source($requestString ?: '', 'GraphQL request'); $documentAST = Parser::parse($source); } /** @var QueryComplexity $queryComplexity */ $queryComplexity = DocumentValidator::getRule('QueryComplexity'); $queryComplexity->setRawVariableValues($variableValues); $validationErrors = DocumentValidator::validate($schema, $documentAST); if (!empty($validationErrors)) { return new ExecutionResult(null, $validationErrors); } else { return Executor::execute($schema, $documentAST, $rootValue, $contextValue, $variableValues, $operationName); } } catch (Error $e) { return new ExecutionResult(null, [$e]); } }
/** * Helper function to test a query and the expected response. */ private function validationErrors($query) { $ast = Parser::parse($query); return DocumentValidator::validate(StarWarsSchema::build(), $ast); }
protected function assertDocumentValidator($queryString, $max, array $expectedErrors = []) { $errors = DocumentValidator::validate(QuerySecuritySchema::buildSchema(), Parser::parse($queryString), [$this->getRule($max)]); $this->assertEquals($expectedErrors, array_map(['GraphQL\\Error\\Error', 'formatError'], $errors), $queryString); return $errors; }