diff --git a/src/Service/ServiceManagerConfig.php b/src/Service/ServiceManagerConfig.php index 4248137b4..d667c1628 100644 --- a/src/Service/ServiceManagerConfig.php +++ b/src/Service/ServiceManagerConfig.php @@ -76,6 +76,10 @@ class ServiceManagerConfig extends Config */ public function __construct(array $config = []) { + $this->config['factories']['ServiceManager'] = function ($container) { + return $container; + }; + $this->config['factories']['SharedEventManager'] = function () { return new SharedEventManager(); }; diff --git a/test/Service/ServiceManagerConfigTest.php b/test/Service/ServiceManagerConfigTest.php index 938abed9b..0956ad68b 100644 --- a/test/Service/ServiceManagerConfigTest.php +++ b/test/Service/ServiceManagerConfigTest.php @@ -212,4 +212,17 @@ public function testEventManagerInitializerCanBeReplaced() $serviceManager->get('EventManagerAware'); } + + /** + * @group 101 + */ + public function testCreatesAFactoryForTheServiceManagerThatReturnsIt() + { + $serviceManager = new ServiceManager(); + $config = new ServiceManagerConfig(); + $config->configureServiceManager($serviceManager); + + $this->assertTrue($serviceManager->has('ServiceManager'), 'Missing ServiceManager service!'); + $this->assertSame($serviceManager, $serviceManager->get('ServiceManager')); + } }