public function testModuleLoadingBehavior() { $moduleManager = new Manager(array('BarModule')); $moduleManager->events()->attachAggregate($this->defaultListeners); $modules = $moduleManager->getLoadedModules(); $this->assertSame(0, count($modules)); $modules = $moduleManager->getLoadedModules(true); $this->assertSame(1, count($modules)); $moduleManager->loadModules(); // should not cause any problems $moduleManager->loadModule('BarModule'); // should not cause any problems $modules = $moduleManager->getLoadedModules(true); // BarModule already loaded so nothing happens $this->assertSame(1, count($modules)); }
public function testInitMethodCalledByInitTriggerListener() { $moduleManager = new Manager(array('ListenerTestModule')); $moduleManager->setDisableLoadDefaultListeners(true); $initListener = new InitTrigger(); $moduleManager->events()->attach('loadModule', $initListener); $moduleManager->loadModules(); $modules = $moduleManager->getLoadedModules(); $this->assertTrue($modules['ListenerTestModule']->initCalled); }
public function testCanLoadMultipleModules() { $moduleManager = new Manager(array('BarModule', 'BazModule')); $loadedModules = $moduleManager->getLoadedModules(); $this->assertInstanceOf('BarModule\Module', $loadedModules['BarModule']); $this->assertInstanceOf('BazModule\Module', $loadedModules['BazModule']); $config = $moduleManager->getMergedConfig(); $this->assertSame('foo', $config->bar); $this->assertSame('bar', $config->baz); }
public function testAutoloadersRegisteredByAutoloaderListener() { $moduleManager = new Manager(array('ListenerTestModule')); $moduleManager->setDisableLoadDefaultListeners(true); $autoloaderListener = new AutoloaderListener(); $moduleManager->events()->attach('loadModule', $autoloaderListener); $moduleManager->loadModules(); $modules = $moduleManager->getLoadedModules(); $this->assertTrue($modules['ListenerTestModule']->getAutoloaderConfigCalled); $this->assertTrue(class_exists('Foo\\Bar')); }
public function testCanCacheMergedConfig() { $moduleManager = new Manager(array('SomeModule', 'ListenerTestModule')); $options = new ListenerOptions(array('cache_dir' => $this->tmpdir, 'config_cache_enabled' => true)); $moduleManager->setDefaultListenerOptions($options); $moduleManager->loadModules(); // This should cache the config $modules = $moduleManager->getLoadedModules(); $this->assertTrue($modules['ListenerTestModule']->getConfigCalled); // Now we check to make sure it uses the config and doesn't hit // the module objects getConfig() method(s) $moduleManager = new Manager(array('SomeModule', 'ListenerTestModule')); $moduleManager->setDefaultListenerOptions($options); $moduleManager->loadModules(); $modules = $moduleManager->getLoadedModules(); $this->assertFalse($modules['ListenerTestModule']->getConfigCalled); }