44
55namespace FastForward \Framework \Tests \ServiceProvider ;
66
7+ use FastForward \Container \Factory \ServiceFactory ;
78use FastForward \Framework \ServiceProvider \FrameworkServiceProvider ;
9+ use FastForward \Http \ServiceProvider \HttpServiceProvider ;
810use PHPUnit \Framework \Attributes \CoversClass ;
911use PHPUnit \Framework \TestCase ;
1012use Prophecy \PhpUnit \ProphecyTrait ;
@@ -23,22 +25,34 @@ protected function setUp(): void
2325
2426 public function testGetFactoriesWillReturnHttpServiceProviderFactories (): void
2527 {
26- $ factories = $ this ->provider ->getFactories ();
28+ $ expectedFactories = array_merge (
29+ (new HttpServiceProvider ())->getFactories (),
30+ [FrameworkServiceProvider::class => new ServiceFactory ($ this ->provider )]
31+ );
2732
28- self ::assertIsArray ($ factories );
29- self ::assertNotEmpty ($ factories );
30- foreach ($ factories as $ factory ) {
31- self ::assertIsCallable ($ factory );
33+ $ actualFactories = $ this ->provider ->getFactories ();
34+
35+ foreach ($ expectedFactories as $ id => $ factory ) {
36+ self ::assertArrayHasKey ($ id , $ actualFactories );
37+ self ::assertIsCallable ($ actualFactories [$ id ]);
3238 }
39+
40+ self ::assertSameSize ($ expectedFactories , $ actualFactories );
3341 }
3442
3543 public function testGetExtensionsWillReturnHttpServiceProviderExtensions (): void
3644 {
37- $ extensions = $ this ->provider ->getExtensions ();
45+ $ expectedExtensions = array_merge (
46+ (new HttpServiceProvider ())->getExtensions (),
47+ );
3848
39- self ::assertIsArray ($ extensions );
40- foreach ($ extensions as $ extension ) {
41- self ::assertIsCallable ($ extension );
49+ $ actualExtensions = $ this ->provider ->getExtensions ();
50+
51+ foreach ($ expectedExtensions as $ id => $ extension ) {
52+ self ::assertArrayHasKey ($ id , $ actualExtensions );
53+ self ::assertIsCallable ($ actualExtensions [$ id ]);
4254 }
55+
56+ self ::assertSameSize ($ expectedExtensions , $ actualExtensions );
4357 }
4458}
0 commit comments