public async Task GlobalDataLoader() { // arrange ISchema schema = CreateSchema(ExecutionScope.Global); QueryExecuter executer = new QueryExecuter(schema, 10); // act List <IExecutionResult> results = new List <IExecutionResult>(); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ a: withDataLoader(key: ""a"") b: withDataLoader(key: ""b"") }"))); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ a: withDataLoader(key: ""a"") }"))); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ c: withDataLoader(key: ""c"") }"))); results.Add(await executer.ExecuteAsync(new QueryRequest( "{ loads }"))); // assert Assert.Collection(results, t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors)); Assert.Equal(Snapshot.Current(), Snapshot.New(results)); }
public async Task RequestCustomContext() { // arrange ISchema schema = CreateSchema(ExecutionScope.Request); QueryExecuter executer = new QueryExecuter(schema, 10); // act List <IExecutionResult> results = new List <IExecutionResult>(); results.Add(await executer.ExecuteAsync( new QueryRequest("{ a: a b: a }"))); results.Add(await executer.ExecuteAsync( new QueryRequest("{ a: a b: a }"))); results.Add(await executer.ExecuteAsync( new QueryRequest("{ a: a b: a }"))); results.Add(await executer.ExecuteAsync( new QueryRequest("{ a: a b: a }"))); // assert Assert.Collection(results, t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors)); results.Snapshot(); }
public static async Task <IExecutionResult> ExecuteAsync( this ISchema schema, QueryRequest request, CancellationToken cancellationToken = default) { QueryExecuter executer = new QueryExecuter(schema, 0); return(await executer.ExecuteAsync(request, cancellationToken)); }
public async Task GlobalDataLoader() { // arrange ISchema schema = CreateSchema(ExecutionScope.Global); QueryExecuter executer = new QueryExecuter(schema, 10); // act List <IExecutionResult> results = new List <IExecutionResult>(); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ a: withDataLoader(key: ""a"") b: withDataLoader(key: ""b"") }"))); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ a: withDataLoader(key: ""a"") }"))); results.Add(await executer.ExecuteAsync(new QueryRequest( @"{ c: withDataLoader(key: ""c"") }"))); // assert Assert.Collection(results, t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors)); results.Snapshot(); var keyLoads = new HashSet <string>(); var loads = (IQueryExecutionResult)await executer .ExecuteAsync(new QueryRequest("{ loads }")); foreach (object o in (IEnumerable <object>)loads.Data["loads"]) { string[] keys = o.ToString().Split(','); foreach (string key in keys) { Assert.True(keyLoads.Add(key)); } } }
public async Task GlobalCustomContext() { // arrange ISchema schema = CreateSchema(ExecutionScope.Global); QueryExecuter executer = new QueryExecuter(schema, 10); // act List <IExecutionResult> results = new List <IExecutionResult>(); results.Add(await executer.ExecuteAsync(new QueryRequest("{ a }"))); results.Add(await executer.ExecuteAsync(new QueryRequest("{ a }"))); results.Add(await executer.ExecuteAsync(new QueryRequest("{ a }"))); results.Add(await executer.ExecuteAsync(new QueryRequest("{ a }"))); // assert Assert.Collection(results, t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors), t => Assert.Null(t.Errors)); Assert.Equal(Snapshot.Current(), Snapshot.New(results)); }
private async Task HandleRequestAsync( HttpContext context, QueryExecuter queryExecuter, CancellationToken cancellationToken) { QueryRequest request = context.Request.IsGet() ? GetRequest.ReadRequest(context) : await PostRequest.ReadRequestAsync(context); IExecutionResult result = await queryExecuter.ExecuteAsync( new Execution.QueryRequest(request.Query, request.OperationName) { VariableValues = DeserializeVariables(request.Variables), Services = CreateRequestServices(context) }, cancellationToken).ConfigureAwait(false); await WriteResponseAsync(context.Response, result) .ConfigureAwait(false); }
public async Task <IExecutionResult> GraphQLOrgFieldExample() { string query = @" { hero { name # Queries can have comments! friends { name } } }"; return(await _queryExecuter.ExecuteAsync(new QueryRequest(query))); }