@@ -44,7 +44,8 @@ public function testGetFactoriesMergesAllProvidersAndIncludesSelf(): void
4444 $ provider1 = $ this ->prophesize (ServiceProviderInterface::class);
4545 $ provider1 ->getFactories ()->willReturn (['service.a ' => $ factory1 ]);
4646
47- $ provider2 = $ this ->prophesize (ServiceProviderInterface::class);
47+ $ provider2 = $ this ->prophesize (\stdClass::class);
48+ $ provider2 ->willImplement (ServiceProviderInterface::class);
4849 $ provider2 ->getFactories ()->willReturn (['service.b ' => $ factory2 ]);
4950
5051 $ aggregate = new AggregateServiceProvider (
@@ -53,13 +54,23 @@ public function testGetFactoriesMergesAllProvidersAndIncludesSelf(): void
5354 );
5455
5556 $ factories = $ aggregate ->getFactories ();
57+ $ container = $ this ->prophesize (ContainerInterface::class)->reveal ();
58+
59+ $ serviceProvider1 = $ provider1 ->reveal ();
60+ $ serviceProvider2 = $ provider2 ->reveal ();
5661
5762 self ::assertArrayHasKey ('service.a ' , $ factories );
5863 self ::assertArrayHasKey ('service.b ' , $ factories );
64+ self ::assertArrayHasKey ($ serviceProvider1 ::class, $ factories );
65+ self ::assertArrayHasKey ($ serviceProvider2 ::class, $ factories );
5966 self ::assertArrayHasKey (AggregateServiceProvider::class, $ factories );
6067 self ::assertInstanceOf (ServiceFactory::class, $ factories [AggregateServiceProvider::class]);
68+ self ::assertInstanceOf (ServiceFactory::class, $ factories [$ serviceProvider1 ::class]);
69+ self ::assertInstanceOf (ServiceFactory::class, $ factories [$ serviceProvider2 ::class]);
6170 self ::assertSame ('foo ' , $ factories ['service.a ' ]());
6271 self ::assertSame ('bar ' , $ factories ['service.b ' ]());
72+ self ::assertSame ($ serviceProvider1 , $ factories [$ serviceProvider1 ::class]($ container ));
73+ self ::assertSame ($ serviceProvider2 , $ factories [$ serviceProvider2 ::class]($ container ));
6374 }
6475
6576 public function testGetExtensionsMergesAllProvidersAndComposesSameKey (): void
0 commit comments