11package com.coxautodev.graphql.tools
22
3- import graphql.relay.Connection
3+
4+ import graphql.relay.ConnectionCursor
5+ import graphql.relay.DefaultConnection
6+ import graphql.relay.DefaultEdge
7+ import graphql.relay.Edge
8+ import graphql.relay.PageInfo
49import graphql.relay.SimpleListConnection
510import graphql.schema.DataFetchingEnvironment
611import spock.lang.Specification
@@ -28,6 +33,10 @@ class RelayConnectionSpec extends Specification {
2833 id: ID!
2934 name: String
3035 }
36+
37+ type PageInfo {
38+
39+ }
3140 ''' )
3241 .resolvers(new QueryResolver ())
3342 .dictionary(User . class)
@@ -39,9 +48,35 @@ class RelayConnectionSpec extends Specification {
3948 }
4049
4150 static class QueryResolver implements GraphQLQueryResolver {
42- Connection<User > users (int first , String after , DataFetchingEnvironment env ) {
43- new SimpleListConnection<User > (new ArrayList ()). get(env)
51+ // fixme #114: desired return type to use: Connection<User>
52+ UserConnection users (int first , String after , DataFetchingEnvironment env ) {
53+ new SimpleListConnection<User > (new ArrayList ()). get(env) as UserConnection
54+ }
55+ }
56+
57+ // fixme #114: remove this implementation
58+ static class UserConnection extends DefaultConnection<User > {
59+
60+ UserConnection (List<Edge<User > > edges , PageInfo pageInfo ) {
61+ super (edges, pageInfo)
62+ }
63+
64+ List<UserEdge > getEdges () {
65+ this . edges
66+ }
67+
68+ PageInfo getPageInfo () {
69+ this . pageInfo
70+ }
71+ }
72+
73+ // fixme #114: remove this implementation
74+ static class UserEdge extends DefaultEdge<User > {
75+
76+ UserEdge (User node , ConnectionCursor cursor ) {
77+ super (node, cursor)
4478 }
79+
4580 }
4681
4782 static class User {
0 commit comments