Skip to content

Commit 025a2bc

Browse files
committed
Updated unit test
1 parent cc5a857 commit 025a2bc

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

src/test/java/com/coxautodev/graphql/tools/RelayConnectionTest.java

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,73 @@
11
package com.coxautodev.graphql.tools;
22

3+
import graphql.GraphQL;
4+
import graphql.execution.AsyncExecutionStrategy;
35
import graphql.relay.Connection;
46
import graphql.relay.SimpleListConnection;
57
import graphql.schema.*;
68
import graphql.schema.idl.SchemaDirectiveWiring;
79
import graphql.schema.idl.SchemaDirectiveWiringEnvironment;
8-
import graphql.schema.idl.SchemaDirectiveWiringEnvironmentImpl;
10+
import groovy.lang.Closure;
911
import org.junit.Test;
1012
import org.slf4j.Logger;
1113
import org.slf4j.LoggerFactory;
1214

13-
import java.util.ArrayList;
15+
import java.util.*;
1416

1517
public class RelayConnectionTest {
1618

1719
private static final Logger log = LoggerFactory.getLogger(RelayConnectionTest.class);
1820

1921
@Test
2022
public void compiles() {
21-
SchemaParser.newParser().file("RelayConnection.graphqls")
23+
GraphQLSchema schema = SchemaParser.newParser().file("RelayConnection.graphqls")
2224
.resolvers(new QueryResolver())
2325
.dictionary(User.class)
24-
.directive("connection", new RelayConnection())
26+
.directive("connection", new ConnectionDirective())
2527
.build()
2628
.makeExecutableSchema();
29+
30+
GraphQL gql = GraphQL.newGraphQL(schema)
31+
.queryExecutionStrategy(new AsyncExecutionStrategy())
32+
.build();
33+
34+
Map<String,Object> variables = new HashMap<>();
35+
variables.put("limit", 10);
36+
Utils.assertNoGraphQlErrors(gql, variables, new Closure<String>(null) {
37+
@Override
38+
public String call() {
39+
return "query {\n" +
40+
" users {\n" +
41+
" edges {\n" +
42+
" node {\n" +
43+
" id\n" +
44+
" name\n" +
45+
" }\n" +
46+
" }\n" +
47+
" }\n" +
48+
"}";
49+
}
50+
});
2751
}
2852

2953
static class QueryResolver implements GraphQLQueryResolver {
3054
// fixme #114: desired return type to use: Connection<User>
3155
public Connection<User> users(int first, String after, DataFetchingEnvironment env) {
32-
return new SimpleListConnection<User>(new ArrayList<>()).get(env);
56+
return new SimpleListConnection<>(Collections.singletonList(new User(1L, "Luke"))).get(env);
3357
}
3458
}
3559

3660
static class User {
3761
Long id;
3862
String name;
63+
64+
public User(Long id, String name) {
65+
this.id = id;
66+
this.name = name;
67+
}
3968
}
4069

41-
static class RelayConnection implements SchemaDirectiveWiring {
70+
static class ConnectionDirective implements SchemaDirectiveWiring {
4271

4372
@Override
4473
public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> environment) {

0 commit comments

Comments
 (0)