@@ -215,17 +215,37 @@ public void queryDeepNesting() {
215
215
216
216
217
217
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 }]}"
221
221
+ "]}}" ;
222
+
223
+ //when:
224
+ Object result = executor .execute (query ).getData ();
222
225
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
+
223
242
//when:
224
243
Object result = executor .execute (query ).getData ();
225
244
226
245
//then:
227
246
assertThat (result .toString ()).isEqualTo (expected );
228
247
}
248
+
229
249
230
250
@ Test
231
251
public void queryWhereRoot () {
@@ -280,11 +300,12 @@ public void queryByCollectionOfEnumsAtRootLevel() {
280
300
//given:
281
301
String query = "query { Humans ( where: { appearsIn: {IN: [THE_FORCE_AWAKENS]}}) { select { name appearsIn } } }" ;
282
302
303
+
283
304
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]}, "
285
306
+ "{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
+ + "]}}" ;
288
309
289
310
//when:
290
311
Object result = executor .execute (query ).getData ();
0 commit comments