Search in sources :

Example 1 with GraphQLSchemaParser

use of com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser in project ezyhttp by youngmonkeys.

the class GraphQLControllerTest method testQueryWithNullVariableType.

@Test
public void testQueryWithNullVariableType() throws Exception {
    // given
    GraphQLSchemaParser schemaParser = new GraphQLSchemaParser();
    GraphQLDataFetcher fooDataFetcher = new GraphQLFooDataFetcher();
    GraphQLDataFetcherManager dataFetcherManager = GraphQLDataFetcherManager.builder().addDataFetcher(fooDataFetcher).build();
    ObjectMapper objectMapper = new ObjectMapper();
    GraphQLController controller = GraphQLController.builder().schemaParser(schemaParser).dataFetcherManager(dataFetcherManager).objectMapper(objectMapper).build();
    String fooQuery = "{foo}";
    // when
    Object fooResult1 = controller.doGet(fooQuery, "{\"value\": \"Bar\"}");
    Object fooResult2 = controller.doGet(fooQuery, null);
    // then
    Asserts.assertEquals(fooResult1.toString(), "{foo=Foo {value=Bar}}");
    Asserts.assertEquals(fooResult2.toString(), "{foo=Foo null}");
}
Also used : GraphQLSchemaParser(com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser) GraphQLDataFetcher(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcher) GraphQLDataFetcherManager(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager) GraphQLController(com.tvd12.ezyhttp.server.graphql.controller.GraphQLController) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.testng.annotations.Test)

Example 2 with GraphQLSchemaParser

use of com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser in project ezyhttp by youngmonkeys.

the class GraphQLControllerTest method testQueryWithVariables.

@Test
public void testQueryWithVariables() throws Exception {
    // given
    GraphQLSchemaParser schemaParser = new GraphQLSchemaParser();
    GraphQLDataFetcher welcomeDataFetcher = new GraphQLWelcomeDataFetcher();
    GraphQLDataFetcherManager dataFetcherManager = GraphQLDataFetcherManager.builder().addDataFetcher(welcomeDataFetcher).build();
    ObjectMapper objectMapper = new ObjectMapper();
    GraphQLController controller = GraphQLController.builder().schemaParser(schemaParser).dataFetcherManager(dataFetcherManager).objectMapper(objectMapper).build();
    String welcomeQuery = "{welcome}";
    String variables = "{\"name\": \"Foo\"}";
    GraphQLRequest welcomeRequest = new GraphQLRequest();
    welcomeRequest.setQuery(welcomeQuery);
    welcomeRequest.setVariables(variables);
    // when
    Object welcomeResult1 = controller.doGet(welcomeQuery, variables);
    Object welcomeResult2 = controller.doPost(welcomeRequest);
    // then
    Asserts.assertEquals(welcomeResult1.toString(), "{welcome=Welcome Foo}");
    Asserts.assertEquals(welcomeResult2.toString(), "{welcome=Welcome Foo}");
}
Also used : GraphQLSchemaParser(com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser) GraphQLRequest(com.tvd12.ezyhttp.server.graphql.data.GraphQLRequest) GraphQLDataFetcher(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcher) GraphQLDataFetcherManager(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager) GraphQLController(com.tvd12.ezyhttp.server.graphql.controller.GraphQLController) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.testng.annotations.Test)

Example 3 with GraphQLSchemaParser

use of com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser in project ezyhttp by youngmonkeys.

the class GraphQLControllerTest method testFetcherNotFoundException.

@Test
public void testFetcherNotFoundException() {
    // given
    GraphQLSchemaParser schemaParser = new GraphQLSchemaParser();
    GraphQLDataFetcherManager dataFetcherManager = GraphQLDataFetcherManager.builder().build();
    ObjectMapper objectMapper = new ObjectMapper();
    GraphQLController controller = GraphQLController.builder().schemaParser(schemaParser).dataFetcherManager(dataFetcherManager).objectMapper(objectMapper).build();
    String heroQuery = "{hero}";
    // when
    Throwable e = Asserts.assertThrows(() -> controller.doGet(heroQuery, null));
    // then
    Asserts.assertEquals(HttpNotFoundException.class.toString(), e.getClass().toString());
}
Also used : GraphQLSchemaParser(com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser) HttpNotFoundException(com.tvd12.ezyhttp.core.exception.HttpNotFoundException) GraphQLDataFetcherManager(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager) GraphQLController(com.tvd12.ezyhttp.server.graphql.controller.GraphQLController) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.testng.annotations.Test)

Example 4 with GraphQLSchemaParser

use of com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser in project ezyhttp by youngmonkeys.

the class GraphQLControllerTest method testInvalidScheme.

@Test
public void testInvalidScheme() {
    // given
    GraphQLSchemaParser schemaParser = new GraphQLSchemaParser();
    GraphQLDataFetcher meDataFetcher = new GraphQLYouDataFetcher();
    GraphQLDataFetcherManager dataFetcherManager = GraphQLDataFetcherManager.builder().addDataFetcher(meDataFetcher).build();
    ObjectMapper objectMapper = new ObjectMapper();
    GraphQLController controller = GraphQLController.builder().schemaParser(schemaParser).dataFetcherManager(dataFetcherManager).objectMapper(objectMapper).build();
    GraphQLRequest youRequest = new GraphQLRequest();
    youRequest.setQuery("query{you{friends{name}}}}");
    // when
    Throwable e = Asserts.assertThrows(() -> controller.doPost(youRequest));
    // then
    Asserts.assertEquals(GraphQLInvalidSchemeException.class.toString(), e.getClass().toString());
}
Also used : GraphQLSchemaParser(com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser) GraphQLRequest(com.tvd12.ezyhttp.server.graphql.data.GraphQLRequest) GraphQLDataFetcher(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcher) GraphQLDataFetcherManager(com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager) GraphQLController(com.tvd12.ezyhttp.server.graphql.controller.GraphQLController) GraphQLInvalidSchemeException(com.tvd12.ezyhttp.server.graphql.exception.GraphQLInvalidSchemeException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.testng.annotations.Test)

Example 5 with GraphQLSchemaParser

use of com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser in project ezyhttp by youngmonkeys.

the class GraphQLSchemaParserTest method testZeroNameLength.

@Test
public void testZeroNameLength() {
    // given
    GraphQLSchemaParser parser = new GraphQLSchemaParser();
    String query = "{q1 q2{{}}}";
    // when
    GraphQLSchema schema = parser.parseQuery(query);
    // then
    Asserts.assertEquals(schema.getQueryDefinitions().size(), 2);
    Asserts.assertEquals(schema.getQueryDefinitions().get(0).getName(), "q1");
    Asserts.assertEquals(schema.getQueryDefinitions().get(1).getName(), "q2");
    Asserts.assertEquals(schema.getQueryDefinitions().get(1).getFields().get(0).getName(), null);
    Asserts.assertEquals(schema.getQueryDefinitions().get(1).getFields().get(0).getFields().get(0).getName(), null);
}
Also used : GraphQLSchemaParser(com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser) GraphQLSchema(com.tvd12.ezyhttp.server.graphql.GraphQLSchema) Test(org.testng.annotations.Test)

Aggregations

GraphQLSchemaParser (com.tvd12.ezyhttp.server.graphql.GraphQLSchemaParser)13 Test (org.testng.annotations.Test)13 GraphQLSchema (com.tvd12.ezyhttp.server.graphql.GraphQLSchema)8 GraphQLController (com.tvd12.ezyhttp.server.graphql.controller.GraphQLController)6 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)5 GraphQLDataFetcherManager (com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcherManager)5 GraphQLDataFetcher (com.tvd12.ezyhttp.server.graphql.GraphQLDataFetcher)4 GraphQLRequest (com.tvd12.ezyhttp.server.graphql.data.GraphQLRequest)3 HttpNotFoundException (com.tvd12.ezyhttp.core.exception.HttpNotFoundException)1 GraphQLInvalidSchemeException (com.tvd12.ezyhttp.server.graphql.exception.GraphQLInvalidSchemeException)1 List (java.util.List)1