@@ -6,13 +6,13 @@ import graphql.schema.GraphQLObjectType
66import graphql.schema.TypeResolver
77import spock.lang.Specification
88
9- import static graphql.Scalars.GraphQLInt
10- import static graphql.Scalars.GraphQLString
9+ import static SchemaValidationErrorType.ObjectDoesNotImplementItsInterfaces
10+ import static graphql.Scalars.*
11+ import static graphql.schema.GraphQLArgument.newArgument
1112import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition
1213import static graphql.schema.GraphQLInterfaceType.newInterface
1314import static graphql.schema.GraphQLList.list
1415import static graphql.schema.GraphQLNonNull.nonNull
15- import static SchemaValidationErrorType.ObjectDoesNotImplementItsInterfaces
1616
1717class ObjectsImplementInterfacesTest extends Specification {
1818
@@ -30,6 +30,18 @@ class ObjectsImplementInterfacesTest extends Specification {
3030 .field(newFieldDefinition(). name(" friends" ). type(list(GraphQLString )))
3131 .field(newFieldDefinition(). name(" age" ). type(GraphQLInt ))
3232 .field(newFieldDefinition(). name(" address" ). type(list(GraphQLString )))
33+
34+ .field(newFieldDefinition(). name(" argField1" ). type(GraphQLString )
35+ .argument(newArgument(). name(" arg1" ). type(GraphQLString ))
36+ .argument(newArgument(). name(" arg2" ). type(GraphQLInt ))
37+ .argument(newArgument(). name(" arg3" ). type(GraphQLBoolean ))
38+ )
39+
40+ .field(newFieldDefinition(). name(" argField2" ). type(GraphQLString )
41+ .argument(newArgument(). name(" arg1" ). type(GraphQLString ))
42+ .argument(newArgument(). name(" arg2" ). type(GraphQLInt ))
43+ .argument(newArgument(). name(" arg3" ). type(GraphQLBoolean ))
44+ )
3345 .typeResolver(typeResolver)
3446 .build()
3547
@@ -44,6 +56,17 @@ class ObjectsImplementInterfacesTest extends Specification {
4456 .field(newFieldDefinition(). name(" missing" ). type(list(GraphQLString )))
4557 .field(newFieldDefinition(). name(" age" ). type(GraphQLString ))
4658 .field(newFieldDefinition(). name(" address" ). type(list(nonNull(GraphQLString ))))
59+
60+ .field(newFieldDefinition(). name(" argField1" ). type(GraphQLString )
61+ .argument(newArgument(). name(" arg1" ). type(GraphQLInt ))
62+ .argument(newArgument(). name(" arg2" ). type(GraphQLInt ))
63+ .argument(newArgument(). name(" arg3" ). type(GraphQLInt ))
64+ )
65+
66+ .field(newFieldDefinition(). name(" argField2" ). type(GraphQLString )
67+ .argument(newArgument(). name(" arg1" ). type(GraphQLString ))
68+ )
69+
4770 .build()
4871
4972 when :
@@ -53,12 +76,18 @@ class ObjectsImplementInterfacesTest extends Specification {
5376
5477 errorCollector. containsValidationError(ObjectDoesNotImplementItsInterfaces )
5578 def errors = errorCollector. getErrors()
56- errors. size() == 3
79+ errors. size() == 6
5780 errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
5881 " object type 'obj' does not implement interface 'Interface' because field 'friends' is missing" ))
5982 errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
6083 " object type 'obj' does not implement interface 'Interface' because field 'age' is defined as 'String' type and not as 'Int' type" ))
6184 errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
6285 " object type 'obj' does not implement interface 'Interface' because field 'address' is defined as '[String!]' type and not as '[String]' type" ))
86+ errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
87+ " object type 'obj' does not implement interface 'Interface' because field 'address' is defined as '[String!]' type and not as '[String]' type" ))
88+ errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
89+ " object type 'obj' does not implement interface 'Interface' because field 'argField1' argument 'arg1' is defined differently" ))
90+ errors. contains(new SchemaValidationError (ObjectDoesNotImplementItsInterfaces ,
91+ " object type 'obj' does not implement interface 'Interface' because field 'argField2' has a different number of arguments" ))
6392 }
6493}
0 commit comments