@@ -80,7 +80,7 @@ public function testQueryProvider(): void
8080
8181 $ queries = $ queryProvider ->getQueries ($ controller );
8282
83- $ this ->assertCount (7 , $ queries );
83+ $ this ->assertCount (9 , $ queries );
8484 $ usersQuery = $ queries ['test ' ];
8585 $ this ->assertSame ('test ' , $ usersQuery ->name );
8686
@@ -201,7 +201,7 @@ public function testQueryProviderWithFixedReturnType(): void
201201
202202 $ queries = $ queryProvider ->getQueries ($ controller );
203203
204- $ this ->assertCount (7 , $ queries );
204+ $ this ->assertCount (9 , $ queries );
205205 $ fixedQuery = $ queries ['testFixReturnType ' ];
206206
207207 $ this ->assertInstanceOf (IDType::class, $ fixedQuery ->getType ());
@@ -215,7 +215,7 @@ public function testQueryProviderWithComplexFixedReturnType(): void
215215
216216 $ queries = $ queryProvider ->getQueries ($ controller );
217217
218- $ this ->assertCount (7 , $ queries );
218+ $ this ->assertCount (9 , $ queries );
219219 $ fixedQuery = $ queries ['testFixComplexReturnType ' ];
220220
221221 $ this ->assertInstanceOf (NonNull::class, $ fixedQuery ->getType ());
@@ -406,7 +406,7 @@ public function testQueryProviderWithIterableClass(): void
406406
407407 $ queries = $ queryProvider ->getQueries ($ controller );
408408
409- $ this ->assertCount (7 , $ queries );
409+ $ this ->assertCount (9 , $ queries );
410410 $ iterableQuery = $ queries ['arrayObject ' ];
411411
412412 $ this ->assertSame ('arrayObject ' , $ iterableQuery ->name );
@@ -417,13 +417,32 @@ public function testQueryProviderWithIterableClass(): void
417417 $ this ->assertSame ('TestObject ' , $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ()->name );
418418 }
419419
420+ public function testQueryProviderWithIterableGenericClass (): void
421+ {
422+ $ controller = new TestController ();
423+
424+ $ queryProvider = $ this ->buildFieldsBuilder ();
425+
426+ $ queries = $ queryProvider ->getQueries ($ controller );
427+
428+ $ this ->assertCount (9 , $ queries );
429+ $ iterableQuery = $ queries ['arrayObjectGeneric ' ];
430+
431+ $ this ->assertSame ('arrayObjectGeneric ' , $ iterableQuery ->name );
432+ $ this ->assertInstanceOf (NonNull::class, $ iterableQuery ->getType ());
433+ $ this ->assertInstanceOf (ListOfType::class, $ iterableQuery ->getType ()->getWrappedType ());
434+ $ this ->assertInstanceOf (NonNull::class, $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ());
435+ $ this ->assertInstanceOf (ObjectType::class, $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ());
436+ $ this ->assertSame ('TestObject ' , $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ()->name );
437+ }
438+
420439 public function testQueryProviderWithIterable (): void
421440 {
422441 $ queryProvider = $ this ->buildFieldsBuilder ();
423442
424443 $ queries = $ queryProvider ->getQueries (new TestController ());
425444
426- $ this ->assertCount (7 , $ queries );
445+ $ this ->assertCount (9 , $ queries );
427446 $ iterableQuery = $ queries ['iterable ' ];
428447
429448 $ this ->assertSame ('iterable ' , $ iterableQuery ->name );
@@ -434,6 +453,23 @@ public function testQueryProviderWithIterable(): void
434453 $ this ->assertSame ('TestObject ' , $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ()->name );
435454 }
436455
456+ public function testQueryProviderWithIterableGeneric (): void
457+ {
458+ $ queryProvider = $ this ->buildFieldsBuilder ();
459+
460+ $ queries = $ queryProvider ->getQueries (new TestController ());
461+
462+ $ this ->assertCount (9 , $ queries );
463+ $ iterableQuery = $ queries ['iterableGeneric ' ];
464+
465+ $ this ->assertSame ('iterableGeneric ' , $ iterableQuery ->name );
466+ $ this ->assertInstanceOf (NonNull::class, $ iterableQuery ->getType ());
467+ $ this ->assertInstanceOf (ListOfType::class, $ iterableQuery ->getType ()->getWrappedType ());
468+ $ this ->assertInstanceOf (NonNull::class, $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ());
469+ $ this ->assertInstanceOf (ObjectType::class, $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ());
470+ $ this ->assertSame ('TestObject ' , $ iterableQuery ->getType ()->getWrappedType ()->getWrappedType ()->getWrappedType ()->name );
471+ }
472+
437473 public function testNoReturnTypeError (): void
438474 {
439475 $ queryProvider = $ this ->buildFieldsBuilder ();
@@ -450,7 +486,7 @@ public function testQueryProviderWithUnion(): void
450486
451487 $ queries = $ queryProvider ->getQueries ($ controller );
452488
453- $ this ->assertCount (7 , $ queries );
489+ $ this ->assertCount (9 , $ queries );
454490 $ unionQuery = $ queries ['union ' ];
455491
456492 $ this ->assertInstanceOf (NonNull::class, $ unionQuery ->getType ());
@@ -618,7 +654,7 @@ public function testMissingArgument(): void
618654
619655 $ queries = $ queryProvider ->getQueries ($ controller );
620656
621- $ this ->assertCount (7 , $ queries );
657+ $ this ->assertCount (9 , $ queries );
622658 $ usersQuery = $ queries ['test ' ];
623659 $ context = [];
624660
0 commit comments