From d85046e9463618b513dc1f33a03cf39530d945e2 Mon Sep 17 00:00:00 2001 From: James Bellenger Date: Tue, 2 Apr 2024 05:19:11 -0700 Subject: [PATCH] feedback --- .../java/graphql/schema/GraphQLDirective.java | 10 +++--- src/test/groovy/graphql/TestUtil.groovy | 32 ++++++++++++++++--- .../graphql/schema/GraphQLArgumentTest.groovy | 20 ++++++------ .../GraphQLEnumValueDefinitionTest.groovy | 6 ++-- .../schema/GraphQLFieldDefinitionTest.groovy | 8 ++--- .../schema/GraphQLInputObjectFieldTest.groovy | 8 ++--- .../schema/GraphQLScalarTypeTest.groovy | 8 ++--- .../graphql/schema/SchemaTraverserTest.groovy | 22 ++++++------- .../schema/idl/SchemaGeneratorTest.groovy | 2 -- 9 files changed, 67 insertions(+), 49 deletions(-) diff --git a/src/main/java/graphql/schema/GraphQLDirective.java b/src/main/java/graphql/schema/GraphQLDirective.java index d0033804c..ae54d0597 100644 --- a/src/main/java/graphql/schema/GraphQLDirective.java +++ b/src/main/java/graphql/schema/GraphQLDirective.java @@ -7,15 +7,13 @@ import graphql.util.TraversalControl; import graphql.util.TraverserContext; -import java.util.Collections; -import java.util.EnumSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Consumer; import java.util.function.UnaryOperator; -import static graphql.Assert.*; +import static graphql.Assert.assertNotEmpty; +import static graphql.Assert.assertNotNull; +import static graphql.Assert.assertValidName; import static graphql.introspection.Introspection.DirectiveLocation; import static graphql.util.FpKit.getByName; diff --git a/src/test/groovy/graphql/TestUtil.groovy b/src/test/groovy/graphql/TestUtil.groovy index fb677bd21..490e7cee9 100644 --- a/src/test/groovy/graphql/TestUtil.groovy +++ b/src/test/groovy/graphql/TestUtil.groovy @@ -3,10 +3,32 @@ package graphql import graphql.execution.MergedField import graphql.execution.MergedSelectionSet import graphql.introspection.Introspection.DirectiveLocation -import graphql.language.* +import graphql.language.Document +import graphql.language.Field +import graphql.language.NullValue +import graphql.language.ObjectTypeDefinition +import graphql.language.OperationDefinition +import graphql.language.ScalarTypeDefinition +import graphql.language.Type import graphql.parser.Parser -import graphql.schema.* -import graphql.schema.idl.* +import graphql.schema.Coercing +import graphql.schema.DataFetcher +import graphql.schema.GraphQLAppliedDirective +import graphql.schema.GraphQLAppliedDirectiveArgument +import graphql.schema.GraphQLArgument +import graphql.schema.GraphQLDirective +import graphql.schema.GraphQLInputType +import graphql.schema.GraphQLObjectType +import graphql.schema.GraphQLScalarType +import graphql.schema.GraphQLSchema +import graphql.schema.GraphQLType +import graphql.schema.TypeResolver +import graphql.schema.idl.RuntimeWiring +import graphql.schema.idl.SchemaGenerator +import graphql.schema.idl.SchemaParser +import graphql.schema.idl.TestMockedWiringFactory +import graphql.schema.idl.TypeRuntimeWiring +import graphql.schema.idl.WiringFactory import graphql.schema.idl.errors.SchemaProblem import groovy.json.JsonOutput @@ -176,13 +198,13 @@ class TestUtil { .replaceDirectives( definition.getDirectives() .stream() - .map({ mockDirective(it.getName(), DirectiveLocation.SCALAR) }) + .map({ mkDirective(it.getName(), DirectiveLocation.SCALAR) }) .collect(Collectors.toList())) .definition(definition) .build() } - static GraphQLDirective mockDirective(String name, DirectiveLocation location, GraphQLArgument arg = null) { + static GraphQLDirective mkDirective(String name, DirectiveLocation location, GraphQLArgument arg = null) { def b = newDirective().name(name).description(name).validLocation(location) if (arg != null) b.argument(arg) b.build() diff --git a/src/test/groovy/graphql/schema/GraphQLArgumentTest.groovy b/src/test/groovy/graphql/schema/GraphQLArgumentTest.groovy index 5b977eb21..aa557e63b 100644 --- a/src/test/groovy/graphql/schema/GraphQLArgumentTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLArgumentTest.groovy @@ -13,7 +13,7 @@ import static graphql.schema.GraphQLArgument.newArgument import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition import static graphql.schema.GraphQLObjectType.newObject import static graphql.schema.GraphQLSchema.newSchema -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective class GraphQLArgumentTest extends Specification { @@ -23,7 +23,7 @@ class GraphQLArgumentTest extends Specification { .description("A1_description") .type(GraphQLInt) .deprecate("custom reason") - .withDirective(mockDirective("directive1", ARGUMENT_DEFINITION)) + .withDirective(mkDirective("directive1", ARGUMENT_DEFINITION)) .build() when: def transformedArgument = startingArgument.transform({ @@ -31,7 +31,7 @@ class GraphQLArgumentTest extends Specification { .name("A2") .description("A2_description") .type(GraphQLString) - .withDirective(mockDirective("directive3", ARGUMENT_DEFINITION)) + .withDirective(mkDirective("directive3", ARGUMENT_DEFINITION)) .value("VALUE") // Retain deprecated for test coverage .deprecate(null) .defaultValue("DEFAULT") // Retain deprecated for test coverage @@ -82,7 +82,7 @@ class GraphQLArgumentTest extends Specification { given: def builder = newArgument().name("A1") .type(GraphQLInt) - .withDirective(mockDirective("directive1", ARGUMENT_DEFINITION)) + .withDirective(mkDirective("directive1", ARGUMENT_DEFINITION)) when: argument = builder.build() @@ -97,8 +97,8 @@ class GraphQLArgumentTest extends Specification { when: argument = builder .clearDirectives() - .withDirective(mockDirective("directive2", ARGUMENT_DEFINITION)) - .withDirective(mockDirective("directive3", ARGUMENT_DEFINITION)) + .withDirective(mkDirective("directive2", ARGUMENT_DEFINITION)) + .withDirective(mkDirective("directive3", ARGUMENT_DEFINITION)) .build() then: @@ -110,9 +110,9 @@ class GraphQLArgumentTest extends Specification { when: argument = builder .replaceDirectives([ - mockDirective("directive1", ARGUMENT_DEFINITION), - mockDirective("directive2", ARGUMENT_DEFINITION), - mockDirective("directive3", ARGUMENT_DEFINITION)]) // overwrite + mkDirective("directive1", ARGUMENT_DEFINITION), + mkDirective("directive2", ARGUMENT_DEFINITION), + mkDirective("directive3", ARGUMENT_DEFINITION)]) // overwrite .build() then: @@ -199,7 +199,7 @@ class GraphQLArgumentTest extends Specification { def "Applied schema directives arguments are validated for programmatic schemas"() { given: def arg = newArgument().name("arg").type(GraphQLInt).valueProgrammatic(ImmutableKit.emptyMap()).build() // Retain for test coverage - def directive = mockDirective("cached", ARGUMENT_DEFINITION, arg) + def directive = mkDirective("cached", ARGUMENT_DEFINITION, arg) def field = newFieldDefinition() .name("hello") .type(GraphQLString) diff --git a/src/test/groovy/graphql/schema/GraphQLEnumValueDefinitionTest.groovy b/src/test/groovy/graphql/schema/GraphQLEnumValueDefinitionTest.groovy index 216689d45..0a755a9f3 100644 --- a/src/test/groovy/graphql/schema/GraphQLEnumValueDefinitionTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLEnumValueDefinitionTest.groovy @@ -4,7 +4,7 @@ import static graphql.introspection.Introspection.DirectiveLocation import spock.lang.Specification import static graphql.schema.GraphQLEnumValueDefinition.newEnumValueDefinition -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective class GraphQLEnumValueDefinitionTest extends Specification { def "object can be transformed"() { @@ -12,14 +12,14 @@ class GraphQLEnumValueDefinitionTest extends Specification { def startEnumValue = newEnumValueDefinition().name("EV1") .description("EV1_description") .value("A") - .withDirective(mockDirective("directive1", DirectiveLocation.ENUM_VALUE)) + .withDirective(mkDirective("directive1", DirectiveLocation.ENUM_VALUE)) .build() when: def transformedEnumValue = startEnumValue.transform({ it .name("EV2") .value("X") - .withDirective(mockDirective("directive2", DirectiveLocation.ENUM_VALUE)) + .withDirective(mkDirective("directive2", DirectiveLocation.ENUM_VALUE)) }) then: diff --git a/src/test/groovy/graphql/schema/GraphQLFieldDefinitionTest.groovy b/src/test/groovy/graphql/schema/GraphQLFieldDefinitionTest.groovy index 8e578a4a9..46a5c3c1e 100644 --- a/src/test/groovy/graphql/schema/GraphQLFieldDefinitionTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLFieldDefinitionTest.groovy @@ -11,7 +11,7 @@ import static graphql.Scalars.GraphQLFloat import static graphql.Scalars.GraphQLInt import static graphql.Scalars.GraphQLString import static graphql.TestUtil.mockArguments -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective import static graphql.schema.DefaultGraphqlTypeComparatorRegistry.newComparators import static graphql.schema.GraphQLArgument.newArgument import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition @@ -36,8 +36,8 @@ class GraphQLFieldDefinitionTest extends Specification { .deprecate("F1_deprecated") .argument(newArgument().name("argStr").type(GraphQLString)) .argument(newArgument().name("argInt").type(GraphQLInt)) - .withDirective(mockDirective("directive1", Introspection.DirectiveLocation.FIELD_DEFINITION)) - .withDirective(mockDirective("directive2", Introspection.DirectiveLocation.FIELD_DEFINITION)) + .withDirective(mkDirective("directive1", Introspection.DirectiveLocation.FIELD_DEFINITION)) + .withDirective(mkDirective("directive2", Introspection.DirectiveLocation.FIELD_DEFINITION)) .build() when: @@ -48,7 +48,7 @@ class GraphQLFieldDefinitionTest extends Specification { .argument(newArgument().name("argStr").type(GraphQLString)) .argument(newArgument().name("argInt").type(GraphQLBoolean)) .argument(newArgument().name("argIntAdded").type(GraphQLInt)) - .withDirective(mockDirective("directive3", Introspection.DirectiveLocation.FIELD_DEFINITION)) + .withDirective(mkDirective("directive3", Introspection.DirectiveLocation.FIELD_DEFINITION)) }) then: diff --git a/src/test/groovy/graphql/schema/GraphQLInputObjectFieldTest.groovy b/src/test/groovy/graphql/schema/GraphQLInputObjectFieldTest.groovy index 62bf92f6d..67e361144 100644 --- a/src/test/groovy/graphql/schema/GraphQLInputObjectFieldTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLInputObjectFieldTest.groovy @@ -7,7 +7,7 @@ import spock.lang.Specification import static graphql.Scalars.GraphQLFloat import static graphql.Scalars.GraphQLInt import static graphql.schema.GraphQLInputObjectField.newInputObjectField -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective class GraphQLInputObjectFieldTest extends Specification { @@ -17,8 +17,8 @@ class GraphQLInputObjectFieldTest extends Specification { .name("F1") .type(GraphQLFloat) .description("F1_description") - .withDirective(mockDirective("directive1", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) - .withDirective(mockDirective("directive2", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) + .withDirective(mkDirective("directive1", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) + .withDirective(mkDirective("directive2", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) .deprecate("No longer useful") .build() @@ -27,7 +27,7 @@ class GraphQLInputObjectFieldTest extends Specification { builder.name("F2") .type(GraphQLInt) .deprecate(null) - .withDirective(mockDirective("directive3", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) + .withDirective(mkDirective("directive3", Introspection.DirectiveLocation.INPUT_FIELD_DEFINITION)) }) then: diff --git a/src/test/groovy/graphql/schema/GraphQLScalarTypeTest.groovy b/src/test/groovy/graphql/schema/GraphQLScalarTypeTest.groovy index b901ddc47..100269838 100644 --- a/src/test/groovy/graphql/schema/GraphQLScalarTypeTest.groovy +++ b/src/test/groovy/graphql/schema/GraphQLScalarTypeTest.groovy @@ -3,7 +3,7 @@ package graphql.schema import graphql.introspection.Introspection import spock.lang.Specification -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective class GraphQLScalarTypeTest extends Specification { Coercing coercing = new Coercing() { @@ -29,14 +29,14 @@ class GraphQLScalarTypeTest extends Specification { .name("S1") .description("S1_description") .coercing(coercing) - .withDirective(mockDirective("directive1", Introspection.DirectiveLocation.SCALAR)) - .withDirective(mockDirective("directive2", Introspection.DirectiveLocation.SCALAR)) + .withDirective(mkDirective("directive1", Introspection.DirectiveLocation.SCALAR)) + .withDirective(mkDirective("directive2", Introspection.DirectiveLocation.SCALAR)) .build() when: def transformedScalar = startingScalar.transform({ builder -> builder.name("S2") .description("S2_description") - .withDirective(mockDirective("directive3", Introspection.DirectiveLocation.SCALAR)) + .withDirective(mkDirective("directive3", Introspection.DirectiveLocation.SCALAR)) }) then: diff --git a/src/test/groovy/graphql/schema/SchemaTraverserTest.groovy b/src/test/groovy/graphql/schema/SchemaTraverserTest.groovy index ce2a523e2..f7a6fc8a9 100644 --- a/src/test/groovy/graphql/schema/SchemaTraverserTest.groovy +++ b/src/test/groovy/graphql/schema/SchemaTraverserTest.groovy @@ -10,7 +10,7 @@ import static graphql.introspection.Introspection.DirectiveLocation import static graphql.schema.GraphQLArgument.newArgument import static graphql.schema.GraphQLTypeReference.typeRef import static graphql.schema.GraphqlTypeComparatorRegistry.BY_NAME_REGISTRY -import static graphql.TestUtil.mockDirective +import static graphql.TestUtil.mkDirective class SchemaTraverserTest extends Specification { @@ -202,7 +202,7 @@ class SchemaTraverserTest extends Specification { def scalarType = GraphQLScalarType.newScalar() .name("foo") .coercing(coercing) - .withDirective(mockDirective("bar", DirectiveLocation.SCALAR)) + .withDirective(mkDirective("bar", DirectiveLocation.SCALAR)) .withAppliedDirective(GraphQLAppliedDirective.newDirective() .name("barApplied")) .build() @@ -218,7 +218,7 @@ class SchemaTraverserTest extends Specification { def visitor = new GraphQLTestingVisitor() def objectType = GraphQLObjectType.newObject() .name("foo") - .withDirective(mockDirective("bar", DirectiveLocation.OBJECT)) + .withDirective(mkDirective("bar", DirectiveLocation.OBJECT)) .withAppliedDirective(GraphQLAppliedDirective.newDirective() .name("barApplied")) .build() @@ -235,7 +235,7 @@ class SchemaTraverserTest extends Specification { def fieldDefinition = GraphQLFieldDefinition.newFieldDefinition() .name("foo") .type(Scalars.GraphQLString) - .withDirective(mockDirective("bar", DirectiveLocation.FIELD_DEFINITION)) + .withDirective(mkDirective("bar", DirectiveLocation.FIELD_DEFINITION)) .withAppliedDirective(GraphQLAppliedDirective.newDirective() .name("barApplied")) .build() @@ -252,7 +252,7 @@ class SchemaTraverserTest extends Specification { def argument = newArgument() .name("foo") .type(Scalars.GraphQLString) - .withDirective(mockDirective("bar", DirectiveLocation.ARGUMENT_DEFINITION)) + .withDirective(mkDirective("bar", DirectiveLocation.ARGUMENT_DEFINITION)) .withAppliedDirective(GraphQLAppliedDirective.newDirective() .name("barApplied")) .build() @@ -268,7 +268,7 @@ class SchemaTraverserTest extends Specification { def visitor = new GraphQLTestingVisitor() def interfaceType = GraphQLInterfaceType.newInterface() .name("foo") - .withDirective(mockDirective("bar", DirectiveLocation.INTERFACE)) + .withDirective(mkDirective("bar", DirectiveLocation.INTERFACE)) .withAppliedDirective(GraphQLAppliedDirective.newDirective() .name("barApplied")) .build() @@ -285,7 +285,7 @@ class SchemaTraverserTest extends Specification { def unionType = GraphQLUnionType.newUnionType() .name("foo") .possibleType(GraphQLObjectType.newObject().name("dummy").build()) - .withDirective(mockDirective("bar", DirectiveLocation.UNION)) + .withDirective(mkDirective("bar", DirectiveLocation.UNION)) .build() new SchemaTraverser().depthFirst(visitor, unionType) then: @@ -298,7 +298,7 @@ class SchemaTraverserTest extends Specification { def enumType = GraphQLEnumType.newEnum() .name("foo") .value("dummy") - .withDirective(mockDirective("bar", DirectiveLocation.ENUM)) + .withDirective(mkDirective("bar", DirectiveLocation.ENUM)) .build() new SchemaTraverser().depthFirst(visitor, enumType) then: @@ -310,7 +310,7 @@ class SchemaTraverserTest extends Specification { def visitor = new GraphQLTestingVisitor() def enumValue = GraphQLEnumValueDefinition.newEnumValueDefinition() .name("foo") - .withDirective(mockDirective("bar", DirectiveLocation.ENUM_VALUE)) + .withDirective(mkDirective("bar", DirectiveLocation.ENUM_VALUE)) .build() new SchemaTraverser().depthFirst(visitor, enumValue) then: @@ -322,7 +322,7 @@ class SchemaTraverserTest extends Specification { def visitor = new GraphQLTestingVisitor() def inputObjectType = GraphQLInputObjectType.newInputObject() .name("foo") - .withDirective(mockDirective("bar", DirectiveLocation.INPUT_OBJECT)) + .withDirective(mkDirective("bar", DirectiveLocation.INPUT_OBJECT)) .build() new SchemaTraverser().depthFirst(visitor, inputObjectType) then: @@ -335,7 +335,7 @@ class SchemaTraverserTest extends Specification { def inputField = GraphQLInputObjectField.newInputObjectField() .name("foo") .type(Scalars.GraphQLString) - .withDirective(mockDirective("bar", DirectiveLocation.INPUT_FIELD_DEFINITION)) + .withDirective(mkDirective("bar", DirectiveLocation.INPUT_FIELD_DEFINITION)) .build() new SchemaTraverser().depthFirst(visitor, inputField) then: diff --git a/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy b/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy index ba572a7f8..d8895370c 100644 --- a/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy +++ b/src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy @@ -8,7 +8,6 @@ import graphql.schema.DataFetcherFactory import graphql.schema.DataFetcherFactoryEnvironment import graphql.schema.DataFetchingEnvironment import graphql.schema.GraphQLAppliedDirective -import graphql.schema.GraphQLArgument import graphql.schema.GraphQLCodeRegistry import graphql.schema.GraphQLDirectiveContainer import graphql.schema.GraphQLEnumType @@ -42,7 +41,6 @@ import static graphql.language.AstPrinter.printAst import static graphql.schema.GraphQLCodeRegistry.newCodeRegistry import static graphql.schema.idl.SchemaGenerator.Options.defaultOptions import static graphql.schema.idl.TypeRuntimeWiring.newTypeWiring -import static graphql.TestUtil.mockDirective class SchemaGeneratorTest extends Specification {