@@ -150,12 +150,9 @@ public void queryOneToManyJoinByID() {
150150 //given:
151151 String query = "query { Humans(where:{id:{EQ: \" 1000\" }}) { select {name, homePlanet, friends { name } } }}" ;
152152
153-
154153 String expected = "{Humans={select=["
155- + "{name=Luke Skywalker, homePlanet=Tatooine, friends=[{name=R2-D2}, {name=C-3PO}, {name=Han Solo}, {name=Leia Organa}]}"
156- + "]}}" ;
157-
158-
154+ + "{name=Luke Skywalker, homePlanet=Tatooine, friends=[{name=C-3PO}, {name=Han Solo}, {name=Leia Organa}, {name=R2-D2}]}"
155+ + "]}}" ;
159156
160157 //when:
161158 Object result = executor .execute (query ).getData ();
@@ -233,10 +230,10 @@ public void queryDeepNesting() {
233230 String query = "query { Droid(id: \" 2001\" ) { name, friends { name, appearsIn, friends { name } } } }" ;
234231
235232 String expected = "{Droid={name=R2-D2, friends=["
236- + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=Leia Organa }, {name=Luke Skywalker }]}, "
237- + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=C-3PO }, {name=Han Solo }, {name=Leia Organa }]}, "
238- + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=C-3PO }, {name=Han Solo }, {name=Luke Skywalker }]}"
239- + "]}}" ;
233+ + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Leia Organa }, {name=Luke Skywalker }, {name=R2-D2 }]}, "
234+ + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=Han Solo }, {name=Luke Skywalker }, {name=R2-D2 }]}, "
235+ + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=Han Solo }, {name=Leia Organa }, {name=R2-D2 }]}"
236+ + "]}}" ;
240237
241238 //when:
242239 Object result = executor .execute (query ).getData ();
@@ -252,11 +249,11 @@ public void queryDeepNestingPlural() {
252249 String query = "query { Droids(where: {id: {EQ: \" 2001\" }}) { select { name, friends { name, appearsIn, friends { name } } } }}" ;
253250
254251 String expected = "{Droids={select=[{name=R2-D2, friends=["
255- + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=Leia Organa }, {name=Luke Skywalker }]}, "
256- + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=C-3PO }, {name=Han Solo }, {name=Leia Organa }]}, "
257- + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2 }, {name=C-3PO }, {name=Han Solo }, {name=Luke Skywalker }]}"
258- + "]} "
259- + "]}}" ;
252+ + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Leia Organa }, {name=Luke Skywalker }, {name=R2-D2 }]}, "
253+ + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=Han Solo }, {name=Luke Skywalker }, {name=R2-D2 }]}, "
254+ + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=Han Solo }, {name=Leia Organa }, {name=R2-D2 }]}"
255+ + "]"
256+ + "} ]}}" ;
260257
261258 //when:
262259 Object result = executor .execute (query ).getData ();
@@ -298,6 +295,25 @@ public void queryWhereRoot() {
298295 //then:
299296 assertThat (result .toString ()).isEqualTo (expected );
300297 }
298+
299+ @ Test
300+ public void queryWhereRootPagedWithVariables () {
301+ //given:
302+ String query = "query($start: Int, $limit: Int) { Humans( page: { start: $start, limit: $limit }) { pages, total, select { name } } }" ;
303+ Map <String , Object > variables = new HashMap <String , Object >() {{
304+ put ("start" , 1 );
305+ put ("limit" , 2 );
306+ }};
307+
308+
309+ String expected = "{Humans={pages=3, total=5, select=[{name=Luke Skywalker}, {name=Darth Vader}]}}" ;
310+
311+ //when:
312+ Object result = executor .execute (query ,variables ).getData ();
313+
314+ //then:
315+ assertThat (result .toString ()).isEqualTo (expected );
316+ }
301317
302318 @ Test
303319 public void queryPaginationWithoutRecords () {
@@ -513,12 +529,10 @@ public void queryWithTypenameDeepNesting() {
513529 String query = "query { Droid(id: \" 2001\" ) { name, friends { name, appearsIn, friends { name __typename } __typename } __typename } }" ;
514530
515531 String expected = "{Droid={name=R2-D2, friends=["
516- + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2, __typename=Character}, "
517- + "{name=Leia Organa, __typename=Character}, {name=Luke Skywalker, __typename=Character}], __typename=Character}, "
518- + "{name=Luke Skywalker, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2, __typename=Character}, {name=C-3PO, __typename=Character}, {name=Han Solo, __typename=Character}, {name=Leia Organa, __typename=Character}], __typename=Character}, {name=Leia Organa, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2, __typename=Character}, {name=C-3PO, __typename=Character}, {name=Han Solo, __typename=Character}, {name=Luke Skywalker, __typename=Character}], __typename=Character}], "
519- + "__typename=Droid}}" ;
532+ + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Leia Organa, __typename=Character}, {name=Luke Skywalker, __typename=Character}, {name=R2-D2, __typename=Character}], __typename=Character}, "
533+ + "{name=Leia Organa, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO, __typename=Character}, {name=Han Solo, __typename=Character}, {name=Luke Skywalker, __typename=Character}, {name=R2-D2, __typename=Character}], __typename=Character}, "
534+ + "{name=Luke Skywalker, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO, __typename=Character}, {name=Han Solo, __typename=Character}, {name=Leia Organa, __typename=Character}, {name=R2-D2, __typename=Character}], __typename=Character}], __typename=Droid}}" ;
520535
521-
522536 //when:
523537 Object result = executor .execute (query ).getData ();
524538
0 commit comments