public async Task TwoOperations_ShortHand_QueryException() { // arrange Schema schema = Schema.Create(@" type Query { a: String } ", c => { c.BindResolver(() => "hello world") .To("Query", "a"); }); var request = new QueryRequest("{ a } query a { a }").ToReadOnly(); var context = new QueryContext( schema, MiddlewareTools.CreateEmptyRequestServiceScope(), request); context.Document = Parser.Default.Parse(request.Query); var middleware = new ResolveOperationMiddleware( c => Task.CompletedTask, null); // act Func <Task> func = () => middleware.InvokeAsync(context); // assert QueryException exception = await Assert.ThrowsAsync <QueryException>(func); Assert.Equal( "Only queries that contain one operation can be executed " + "without specifying the opartion name.", exception.Message); }
public async Task TwoOperations_WrongOperationName_QueryException() { // arrange var schema = Schema.Create(@" type Query { a: String } ", c => { c.BindResolver(() => "hello world") .To("Query", "a"); }); var sourceText = "query a { a } query b { a }"; var request = QueryRequestBuilder.New() .SetQuery(sourceText) .SetOperation("c") .Create(); var context = new QueryContext ( schema, MiddlewareTools.CreateEmptyRequestServiceScope(), request, (f, s) => f.Middleware ); context.Document = Utf8GraphQLParser.Parse(sourceText); var middleware = new ResolveOperationMiddleware( c => Task.CompletedTask, null); // act Func <Task> func = () => middleware.InvokeAsync(context); // assert QueryException exception = await Assert.ThrowsAsync <QueryException>(func); Assert.Equal( "The specified operation `c` does not exist.", exception.Message); }
public async Task TwoOperations_WrongOperationName_QueryException() { // arrange Schema schema = Schema.Create(@" type Query { a: String } ", c => { c.BindResolver(() => "hello world") .To("Query", "a"); }); var request = new QueryRequest( "query a { a } query b { a }", "c") .ToReadOnly(); var context = new QueryContext( schema, MiddlewareTools.CreateEmptyRequestServiceScope(), request); context.Document = Parser.Default.Parse(request.Query); var middleware = new ResolveOperationMiddleware( c => Task.CompletedTask, null); // act Func <Task> func = () => middleware.InvokeAsync(context); // assert QueryException exception = await Assert.ThrowsAsync <QueryException>(func); Assert.Equal( "The specified operation `c` does not exist.", exception.Message); }