Skip to content

Commit b938a73

Browse files
committed
Increase coverage and fix sonar issues in osgi
1 parent 0774906 commit b938a73

File tree

5 files changed

+86
-13
lines changed

5 files changed

+86
-13
lines changed

graphql-java-servlet/src/main/java/graphql/kickstart/servlet/osgi/GraphQLQueryProvider.java

-4
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,4 @@ public interface GraphQLQueryProvider extends GraphQLProvider {
1313
*/
1414
Collection<GraphQLFieldDefinition> getQueries();
1515

16-
default Collection<GraphQLFieldDefinition> getFields() {
17-
return getQueries();
18-
}
19-
2016
}

graphql-java-servlet/src/test/groovy/graphql/kickstart/servlet/OsgiGraphQLHttpServletSpec.groovy

+38-9
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,19 @@ import graphql.AssertException
44
import graphql.annotations.annotationTypes.GraphQLField
55
import graphql.annotations.annotationTypes.GraphQLName
66
import graphql.annotations.processor.GraphQLAnnotations
7+
import graphql.execution.instrumentation.Instrumentation
8+
import graphql.execution.instrumentation.InstrumentationState
9+
import graphql.execution.instrumentation.SimpleInstrumentation
10+
import graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters
711
import graphql.kickstart.execution.GraphQLRequest
812
import graphql.kickstart.execution.config.ExecutionStrategyProvider
13+
import graphql.kickstart.execution.config.InstrumentationProvider
914
import graphql.kickstart.execution.context.DefaultGraphQLContext
1015
import graphql.kickstart.execution.context.GraphQLContext
1116
import graphql.kickstart.servlet.context.GraphQLServletContextBuilder
1217
import graphql.kickstart.servlet.core.GraphQLServletListener
1318
import graphql.kickstart.servlet.core.GraphQLServletRootObjectBuilder
19+
import graphql.kickstart.servlet.input.NoOpBatchInputPreProcessor
1420
import graphql.kickstart.servlet.osgi.*
1521
import graphql.schema.*
1622
import org.dataloader.DataLoaderRegistry
@@ -25,19 +31,19 @@ class OsgiGraphQLHttpServletSpec extends Specification {
2531

2632
@Override
2733
Collection<GraphQLFieldDefinition> getQueries() {
28-
List<GraphQLFieldDefinition> fieldDefinitions = new ArrayList<>();
34+
List<GraphQLFieldDefinition> fieldDefinitions = new ArrayList<>()
2935
fieldDefinitions.add(newFieldDefinition()
3036
.name("query")
3137
.type(new GraphQLAnnotations().object(Query.class))
3238
.staticValue(new Query())
33-
.build());
34-
return fieldDefinitions;
39+
.build())
40+
return fieldDefinitions
3541
}
3642

3743
@GraphQLName("query")
3844
static class Query {
3945
@GraphQLField
40-
public String field;
46+
public String field
4147
}
4248

4349
}
@@ -55,15 +61,15 @@ class OsgiGraphQLHttpServletSpec extends Specification {
5561
query.getType().name == "query"
5662

5763
when:
58-
query = servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema(null).getQueryType().getFieldDefinition("query")
64+
query = servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema().getQueryType().getFieldDefinition("query")
5965
then:
6066
query.getType().name == "query"
6167

6268
when:
6369
servlet.unbindQueryProvider(queryProvider)
6470
then:
6571
servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getSchema().getQueryType().getFieldDefinitions().get(0).name == "_empty"
66-
servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema(null).getQueryType().getFieldDefinitions().get(0).name == "_empty"
72+
servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema().getQueryType().getFieldDefinitions().get(0).name == "_empty"
6773
}
6874

6975
static class TestMutationProvider implements GraphQLMutationProvider {
@@ -110,7 +116,7 @@ class OsgiGraphQLHttpServletSpec extends Specification {
110116
@GraphQLName("subscription")
111117
static class Subscription {
112118
@GraphQLField
113-
public String field;
119+
public String field
114120
}
115121
}
116122

@@ -127,7 +133,7 @@ class OsgiGraphQLHttpServletSpec extends Specification {
127133
subscription.getType().getName() == "subscription"
128134

129135
when:
130-
subscription = servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema(null).getSubscriptionType().getFieldDefinition("subscription")
136+
subscription = servlet.getConfiguration().getInvocationInputFactory().getSchemaProvider().getReadOnlySchema().getSubscriptionType().getFieldDefinition("subscription")
131137
then:
132138
subscription.getType().getName() == "subscription"
133139

@@ -151,7 +157,7 @@ class OsgiGraphQLHttpServletSpec extends Specification {
151157
static class TestCodeRegistryProvider implements GraphQLCodeRegistryProvider {
152158
@Override
153159
GraphQLCodeRegistry getCodeRegistry() {
154-
return GraphQLCodeRegistry.newCodeRegistry().typeResolver("Type", { env -> null }).build();
160+
return GraphQLCodeRegistry.newCodeRegistry().typeResolver("Type", { env -> null }).build()
155161
}
156162
}
157163

@@ -341,4 +347,27 @@ class OsgiGraphQLHttpServletSpec extends Specification {
341347
then:
342348
0 * executionStrategy.getQueryExecutionStrategy()
343349
}
350+
351+
def "instrumentation provider is bound and unbound"() {
352+
setup:
353+
def servlet = new OsgiGraphQLHttpServlet()
354+
def instrumentation = new SimpleInstrumentation()
355+
def instrumentationProvider = Mock(InstrumentationProvider)
356+
instrumentationProvider.getInstrumentation() >> instrumentation
357+
def request = GraphQLRequest.createIntrospectionRequest()
358+
instrumentation.createState(_ as InstrumentationCreateStateParameters) >> Mock(InstrumentationState)
359+
360+
when:
361+
servlet.setInstrumentationProvider(instrumentationProvider)
362+
def invocationInput = servlet.configuration.invocationInputFactory.create(request)
363+
servlet.configuration.graphQLInvoker.query(invocationInput)
364+
365+
then:
366+
noExceptionThrown()
367+
368+
when:
369+
servlet.unsetInstrumentationProvider(instrumentationProvider)
370+
then:
371+
noExceptionThrown()
372+
}
344373
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package graphql.kickstart.servlet
2+
3+
import spock.lang.Specification
4+
5+
class PartIOExceptionTest extends Specification {
6+
7+
def "constructs"() {
8+
when:
9+
def e = new PartIOException("some message", new IOException())
10+
then:
11+
e instanceof RuntimeException
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package graphql.kickstart.servlet
2+
3+
import graphql.ExecutionResult
4+
import graphql.kickstart.execution.GraphQLObjectMapper
5+
import org.springframework.mock.web.MockAsyncContext
6+
import spock.lang.Specification
7+
8+
import javax.servlet.http.HttpServletRequest
9+
import javax.servlet.http.HttpServletResponse
10+
11+
class SingleAsynchronousQueryResponseWriterTest extends Specification {
12+
13+
def "result data is no publisher should"() {
14+
given:
15+
def result = Mock(ExecutionResult)
16+
def objectMapper = Mock(GraphQLObjectMapper)
17+
def writer = new SingleAsynchronousQueryResponseWriter(result, objectMapper, 100)
18+
def request = Mock(HttpServletRequest)
19+
def responseWriter = new PrintWriter(new StringWriter())
20+
def response = Mock(HttpServletResponse)
21+
response.getWriter() >> responseWriter
22+
def asyncContext = new MockAsyncContext(request, response)
23+
request.getAsyncContext() >> asyncContext
24+
request.isAsyncStarted() >> true
25+
objectMapper.serializeResultAsJson(result) >> "{ }"
26+
27+
when:
28+
writer.write(request, response)
29+
30+
then:
31+
noExceptionThrown()
32+
}
33+
34+
}

lombok.config

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lombok.addLombokGeneratedAnnotation = true

0 commit comments

Comments
 (0)