public void GlobalSetup()
        {
            var services = new ServiceCollection();

            services.AddSingleton <MyQueryGraphType>();
            services.AddSingleton <MyInputObjectGraphType>();
            services.AddSingleton <MySubInputObjectGraphType>();
            services.AddSingleton <ISchema, MySchema>();

            _provider = services.BuildServiceProvider();
            _schema   = _provider.GetRequiredService <ISchema>();
            _schema.Initialize();
            _executer             = new DocumentExecuter();
            _queryLiteralDocument = new Execution.GraphQLDocumentBuilder().Build(Queries.VariablesLiteral);

            _queryDefaultVariableDocument = new Execution.GraphQLDocumentBuilder().Build(Queries.VariablesDefaultVariable);

            _queryVariableDocument = new Execution.GraphQLDocumentBuilder().Build(Queries.VariablesVariable);
            _variableInputs        = Variables.VariablesVariable.ToInputs();

            //confirm no errors during execution
            var val = EnableValidation;

            EnableValidation = true;
            Literal();
            DefaultVariable();
            Variable();
            EnableValidation = val;
        }
 private ExecutionResult ExecuteQuery(ISchema schema, string query, Language.AST.Document document, Inputs inputs)
 {
     return(_executer.ExecuteAsync(_ =>
     {
         _.Schema = schema;
         _.Query = query;
         _.Document = document;
         _.Inputs = inputs;
         _.ValidationRules = EnableValidation ? null : Array.Empty <IValidationRule>();
         _.ThrowOnUnhandledException = true;
     }).GetAwaiter().GetResult());
 }