@@ -215,17 +215,37 @@ public void queryDeepNesting() {
215215
216216
217217 String expected = "{Droid={name=R2-D2, friends=["
218- + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Han Solo }, {name=Leia Organa }, {name=C-3PO }, {name=R2-D2 }]}, "
219- + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Luke Skywalker }, {name=Leia Organa }, {name=R2-D2 }]}, "
220- + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Luke Skywalker }, {name=Han Solo }, {name=C-3PO }, {name=R2-D2 }]}"
218+ + "{name=Leia Organa , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=R2-D2 }, {name=Han Solo }, {name=Luke Skywalker }]}, "
219+ + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=Leia Organa }, {name=R2-D2 }, {name=Luke Skywalker }]}, "
220+ + "{name=Luke Skywalker , appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO }, {name=Leia Organa }, {name=R2-D2 }, {name=Han Solo }]}"
221221 + "]}}" ;
222+
223+ //when:
224+ Object result = executor .execute (query ).getData ();
222225
226+ //then:
227+ assertThat (result .toString ()).isEqualTo (expected );
228+ }
229+
230+ // Cannot simultaneously fetch multiple bags #2
231+ @ Test
232+ public void queryDeepNestingPlural () {
233+ //given:
234+ String query = "query { Droids(where: {id: {EQ: \" 2001\" }}) { select { name, friends { name, appearsIn, friends { name } } } }}" ;
235+
236+ String expected = "{Droids={select=[{name=R2-D2, friends=["
237+ + "{name=Leia Organa, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO}, {name=R2-D2}, {name=Han Solo}, {name=Luke Skywalker}]}, "
238+ + "{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}]}, "
239+ + "{name=Luke Skywalker, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO}, {name=R2-D2}, {name=Leia Organa}, {name=Han Solo}]}]}"
240+ + "]}}" ;
241+
223242 //when:
224243 Object result = executor .execute (query ).getData ();
225244
226245 //then:
227246 assertThat (result .toString ()).isEqualTo (expected );
228247 }
248+
229249
230250 @ Test
231251 public void queryWhereRoot () {
@@ -280,11 +300,12 @@ public void queryByCollectionOfEnumsAtRootLevel() {
280300 //given:
281301 String query = "query { Humans ( where: { appearsIn: {IN: [THE_FORCE_AWAKENS]}}) { select { name appearsIn } } }" ;
282302
303+
283304 String expected = "{Humans={select=["
284- + "{name=Luke Skywalker, appearsIn=[EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS, A_NEW_HOPE ]}, "
305+ + "{name=Luke Skywalker, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS]}, "
285306 + "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS]}, "
286- + "{name=Leia Organa, appearsIn=[RETURN_OF_THE_JEDI , EMPIRE_STRIKES_BACK, A_NEW_HOPE , THE_FORCE_AWAKENS]}"
287- + "]}}" ;
307+ + "{name=Leia Organa, appearsIn=[A_NEW_HOPE , EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI , THE_FORCE_AWAKENS]}"
308+ + "]}}" ;
288309
289310 //when:
290311 Object result = executor .execute (query ).getData ();
0 commit comments