add method to parse field definition from Parser by andimarek · Pull Request #4006 · graphql-java/graphql-java

@@ -1,6 +1,5 @@ package graphql.parser

import graphql.language.Argument import graphql.language.ArrayValue import graphql.language.AstComparator Expand Down Expand Up @@ -46,8 +45,6 @@ import spock.lang.Issue import spock.lang.Specification import spock.lang.Unroll
import static graphql.parser.ParserEnvironment.*
class ParserTest extends Specification {
def "parse anonymous simple query"() { Expand Down Expand Up @@ -384,7 +381,7 @@ class ParserTest extends Specification { .build()
when: def parserEnvironment = newParserEnvironment().document(input).parserOptions(parserOptionsWithoutCaptureLineComments).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).parserOptions(parserOptionsWithoutCaptureLineComments).build() def document = new Parser().parseDocument(parserEnvironment) Field helloField = (document.definitions[0] as OperationDefinition).selectionSet.selections[0] as Field
Expand Down Expand Up @@ -753,7 +750,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases""" when: def captureIgnoredCharsTRUE = ParserOptions.newParserOptions().captureIgnoredChars(true).build()
def parserEnvironment = newParserEnvironment().document(input).parserOptions(captureIgnoredCharsTRUE).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).parserOptions(captureIgnoredCharsTRUE).build()
Document document = new Parser().parseDocument(parserEnvironment) def field = (document.definitions[0] as OperationDefinition).selectionSet.selections[0] Expand Down Expand Up @@ -851,7 +848,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases""" } ''' when: def parserEnvironment = newParserEnvironment().document(input).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).build()
Document document = Parser.parse(parserEnvironment) OperationDefinition operationDefinition = (document.definitions[0] as OperationDefinition) Expand Down Expand Up @@ -964,6 +961,22 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases""" '1.2e3e' | _ }
@Unroll def 'parse ast field definition #valueLiteral'() { expect: def fieldDefinition = Parser.parseFieldDefinition(valueLiteral) AstPrinter.printAstCompact(fieldDefinition) == valueLiteral
where: valueLiteral | _ 'foo: Foo' | _ 'foo(a:String): Foo' | _ 'foo(a:String!,b:Int!): Foo' | _ 'foo(a:String! ="defaultValue",b:Int!): Foo' | _ 'foo(a:String!,b:Int!): Foo @directive(someValue:String)' | _ }

@Unroll def 'parse ast literals #valueLiteral'() { expect: Expand Down Expand Up @@ -1026,7 +1039,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases""" def captureIgnoredCharsTRUE = ParserOptions.newParserOptions().captureIgnoredChars(true).build()
when: "explicitly off" def parserEnvironment = newParserEnvironment().document(s).parserOptions(captureIgnoredCharsFALSE).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(s).parserOptions(captureIgnoredCharsFALSE).build() def doc = new Parser().parseDocument(parserEnvironment) def type = doc.getDefinitionsOfType(ObjectTypeDefinition)[0] then: Expand All @@ -1042,7 +1055,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
when: "explicitly on"
parserEnvironment = newParserEnvironment().document(s).parserOptions(captureIgnoredCharsTRUE).build() parserEnvironment = ParserEnvironment.newParserEnvironment().document(s).parserOptions(captureIgnoredCharsTRUE).build() doc = new Parser().parseDocument(parserEnvironment) type = doc.getDefinitionsOfType(ObjectTypeDefinition)[0]
Expand Down Expand Up @@ -1143,7 +1156,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
when: options = ParserOptions.newParserOptions().captureSourceLocation(false).build() def parserEnvironment = newParserEnvironment().document("{ f }").parserOptions(options).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document("{ f }").parserOptions(options).build() document = new Parser().parseDocument(parserEnvironment)
then: Expand All @@ -1154,7 +1167,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
def "escape characters correctly printed when printing AST"() { given: def env = newParserEnvironment() def env = ParserEnvironment.newParserEnvironment() .document(src) .parserOptions( ParserOptions.newParserOptions() Expand Down Expand Up @@ -1201,7 +1214,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
when: // Enable redacted parser error messages def redactParserErrorMessages = ParserOptions.newParserOptions().redactTokenParserErrorMessages(true).build() def parserEnvironment = newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() new Parser().parseDocument(parserEnvironment)
then: Expand All @@ -1225,7 +1238,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
when: // Enable redacted parser error messages def redactParserErrorMessages = ParserOptions.newParserOptions().redactTokenParserErrorMessages(true).build() def parserEnvironment = newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() new Parser().parseDocument(parserEnvironment)
then: Expand All @@ -1247,7 +1260,7 @@ triple3 : """edge cases \\""" "" " \\"" \\" edge cases"""
when: // Enable redacted parser error messages def redactParserErrorMessages = ParserOptions.newParserOptions().redactTokenParserErrorMessages(true).build() def parserEnvironment = newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() def parserEnvironment = ParserEnvironment.newParserEnvironment().document(input).parserOptions(redactParserErrorMessages).build() new Parser().parseDocument(parserEnvironment)
then: Expand Down