private static Object fakeObjectValue(GraphQLObjectType fieldType) { Map<String, Object> map = new LinkedHashMap<>(); fieldType.getFieldDefinitions().forEach(fldDef -> { GraphQLOutputType innerFieldType = fldDef.getType(); Object obj = null; if (innerFieldType instanceof GraphQLObjectType) { obj = fakeObjectValue((GraphQLObjectType) innerFieldType); } else if (innerFieldType instanceof GraphQLScalarType) { obj = fakeScalarValue(fldDef.getName(), (GraphQLScalarType) innerFieldType); } map.put(fldDef.getName(), obj); }); return map; }
public Builder(GraphQLObjectType existing) { name = existing.getName(); description = existing.getDescription(); definition = existing.getDefinition(); fields.putAll(getByName(existing.getFieldDefinitions(), GraphQLFieldDefinition::getName)); interfaces.putAll(getByName(existing.getInterfaces(), GraphQLType::getName)); directives.putAll(getByName(existing.getDirectives(), GraphQLDirective::getName)); }
@Override public boolean equals(Object obj) { return obj instanceof GraphQLObjectType && ((GraphQLObjectType) obj).getName().contentEquals(getName()) && ((GraphQLObjectType) obj).getFieldDefinitions().equals(getFieldDefinitions()); } }
@Override public String[] getQueries() { return getInvocationInputFactory().getSchemaProvider().getSchema().getQueryType().getFieldDefinitions().stream().map(GraphQLFieldDefinition::getName).toArray(String[]::new); }
@Override public String[] getMutations() { return getInvocationInputFactory().getSchemaProvider().getSchema().getMutationType().getFieldDefinitions().stream().map(GraphQLFieldDefinition::getName).toArray(String[]::new); }
@Override public String[] getQueries() { return configuration.getInvocationInputFactory().getSchemaProvider().getSchema().getQueryType().getFieldDefinitions().stream().map(GraphQLFieldDefinition::getName).toArray(String[]::new); }
@Override public String[] getMutations() { return configuration.getInvocationInputFactory().getSchemaProvider().getSchema().getMutationType().getFieldDefinitions().stream().map(GraphQLFieldDefinition::getName).toArray(String[]::new); }
private static Object fakeObjectValue(GraphQLObjectType fieldType) { Map<String, Object> map = new LinkedHashMap<>(); fieldType.getFieldDefinitions().forEach(fldDef -> { GraphQLOutputType innerFieldType = fldDef.getType(); Object obj = null; if (innerFieldType instanceof GraphQLObjectType) { obj = fakeObjectValue((GraphQLObjectType) innerFieldType); } else if (innerFieldType instanceof GraphQLScalarType) { obj = fakeScalarValue(fldDef.getName(), (GraphQLScalarType) innerFieldType); } map.put(fldDef.getName(), obj); }); return map; }
public GraphQLObjectTypeWrapper(Class<?> objectClass, GraphQLObjectType objectType) { super(objectType.getName(), objectType.getDescription(), objectType.getFieldDefinitions(), objectType.getInterfaces()); this.objectClass = objectClass; }
@Test public void unionType_buildSchema_unionIsAFieldOfQuery() throws Exception { //Act GraphQLObjectType object = GraphQLAnnotations.object(Query.class); List<GraphQLFieldDefinition> unions = object.getFieldDefinitions(); //Assert assertThat(unions.size(), is(3)); }
@Test public void onMethod() { GraphQLObjectType object = GraphQLAnnotations.object(OnMethodTest.class); List<GraphQLFieldDefinition> fields = object.getFieldDefinitions(); assertEquals(fields.size(), 1); assertEquals(fields.get(0).getName(), "getValue"); }
@Test public void accessors() { GraphQLObjectType object = GraphQLAnnotations.object(TestAccessors.class); List<GraphQLFieldDefinition> fields = object.getFieldDefinitions(); assertEquals(fields.size(), 2); fields.sort(Comparator.comparing(GraphQLFieldDefinition::getName)); assertEquals(fields.get(0).getName(), "getValue"); assertEquals(fields.get(1).getName(), "setAnotherValue"); }
public Builder(GraphQLObjectType existing) { name = existing.getName(); description = existing.getDescription(); definition = existing.getDefinition(); fields.putAll(getByName(existing.getFieldDefinitions(), GraphQLFieldDefinition::getName)); interfaces.putAll(getByName(existing.getInterfaces(), GraphQLType::getName)); directives.putAll(getByName(existing.getDirectives(), GraphQLDirective::getName)); }
@Test public void namedFields() { GraphQLObjectType object = GraphQLAnnotations.object(TestObjectNamedArgs.class); List<GraphQLFieldDefinition> fields = object.getFieldDefinitions(); assertEquals(fields.size(), 1); List<GraphQLArgument> args = fields.get(0).getArguments(); assertEquals(args.size(), 1); GraphQLArgument arg = args.get(0); assertEquals(arg.getName(), "namedArg"); }
@Test public void field() { GraphQLObjectType object = GraphQLAnnotations.object(TestField.class); List<GraphQLFieldDefinition> fields = object.getFieldDefinitions(); assertEquals(fields.size(), 1); assertEquals(fields.get(0).getName(), "field1"); }
@Test public void interfaceInheritance() { GraphQLObjectType object = GraphQLAnnotations.object(IfaceImpl.class); assertEquals(object.getFieldDefinitions().size(), 1); assertEquals(object.getFieldDefinition("field").getType(), GraphQLString); }
/** * Issue #10 */ @Test public void testGetAndIs() { IGraphQLObjectMapper graphQLObjectMapper = newGraphQLObjectMapper( ImmutableList.<IGraphQLTypeMapper> builder().addAll(GraphQLSchemaBuilder.getDefaultTypeMappers()).build()); GraphQLObjectType objectType = (GraphQLObjectType) graphQLObjectMapper.getOutputType(new TypeToken<GetAndIs>() { }.getType()); assertTrue(objectType.getFieldDefinitions().isEmpty()); } }
@Test public void noResolver() { GraphQLInterfaceRetriever graphQLInterfaceRetriever = GraphQLAnnotations.getInstance().getObjectHandler().getTypeRetriever().getGraphQLInterfaceRetriever(); GraphQLObjectType object = (GraphQLObjectType) graphQLInterfaceRetriever.getInterface(NoResolverIface.class, GraphQLAnnotations.getInstance().getContainer()); List<GraphQLFieldDefinition> fields = object.getFieldDefinitions(); assertEquals(fields.size(), 1); assertEquals(fields.get(0).getName(), "value"); }
@Test public void methodInheritance() { GraphQLObjectType object = GraphQLAnnotations.object(TestObject.class); GraphQLObjectType objectInherited = GraphQLAnnotations.object(TestObjectInherited.class); assertEquals(object.getFieldDefinitions().size(), objectInherited.getFieldDefinitions().size()); GraphQLSchema schema = newSchema().query(object).build(); GraphQLSchema schemaInherited = newSchema().query(objectInherited).build(); ExecutionResult result = GraphQL.newGraphQL(schema).build().execute("{field0}", new TestObject()); assertEquals(((Map<String, Object>) result.getData()).get("field0"), "test"); GraphQL graphQL = GraphQL.newGraphQL(schemaInherited).build(); result = graphQL.execute("{field1}", new TestObjectInherited()); assertEquals(((Map<String, Object>) result.getData()).get("field1"), "inherited"); }
@Test public void testIgnoredFields() { IGraphQLObjectMapper graphQLObjectMapper = newGraphQLObjectMapper(Optional.<ITypeNamingStrategy> absent()); GraphQLObjectType type = (GraphQLObjectType) graphQLObjectMapper.getOutputType(TestIgnoredFields.class); assertEquals(TestIgnoredFields.class.getSimpleName(), type.getName()); assertEquals(1, type.getFieldDefinitions().size()); assertNull(type.getFieldDefinition("keyValueStore")); assertNotNull(type.getFieldDefinition("stringField")); assertEquals("stringField", type.getFieldDefinition("stringField").getName()); assertEquals(Scalars.GraphQLString, type.getFieldDefinition("stringField").getType()); }