PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/ZendTest/ModuleManager/Listener/ModuleLoaderListenerTest.php

https://bitbucket.org/gencer/zf2
PHP | 93 lines | 68 code | 18 blank | 7 comment | 0 complexity | 44d24e1ccc4d4e2e03e7b7daed6af570 MD5 | raw file
  1. <?php
  2. /**
  3. * Zend Framework (http://framework.zend.com/)
  4. *
  5. * @link http://github.com/zendframework/zf2 for the canonical source repository
  6. * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
  7. * @license http://framework.zend.com/license/new-bsd New BSD License
  8. */
  9. namespace ZendTest\ModuleManager\Listener;
  10. use PHPUnit_Framework_TestCase as TestCase;
  11. use Zend\ModuleManager\Listener\ModuleResolverListener;
  12. use Zend\ModuleManager\Listener\ModuleLoaderListener;
  13. use Zend\ModuleManager\Listener\ListenerOptions;
  14. use Zend\ModuleManager\ModuleManager;
  15. use Zend\ModuleManager\ModuleEvent;
  16. class ModuleLoaderListenerTest extends TestCase
  17. {
  18. public function setUp()
  19. {
  20. $this->tmpdir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'zend_module_cache_dir';
  21. @mkdir($this->tmpdir);
  22. $this->moduleManager = new ModuleManager(array());
  23. $this->moduleManager->getEventManager()->attach(ModuleEvent::EVENT_LOAD_MODULE_RESOLVE, new ModuleResolverListener, 1000);
  24. }
  25. public function tearDown()
  26. {
  27. $file = glob($this->tmpdir . DIRECTORY_SEPARATOR . '*');
  28. @unlink($file[0]); // change this if there's ever > 1 file
  29. @rmdir($this->tmpdir);
  30. }
  31. public function testModuleLoaderListenerFunctionsAsAggregateListenerEnabledCache()
  32. {
  33. $options = new ListenerOptions(array(
  34. 'cache_dir' => $this->tmpdir,
  35. 'module_map_cache_enabled' => true,
  36. 'module_map_cache_key' => 'foo',
  37. ));
  38. $moduleLoaderListener = new ModuleLoaderListener($options);
  39. $moduleManager = $this->moduleManager;
  40. $this->assertEquals(1, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  41. $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  42. $moduleLoaderListener->attach($moduleManager->getEventManager());
  43. $this->assertEquals(2, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  44. $this->assertEquals(1, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  45. }
  46. public function testModuleLoaderListenerFunctionsAsAggregateListenerDisabledCache()
  47. {
  48. $options = new ListenerOptions(array(
  49. 'cache_dir' => $this->tmpdir,
  50. ));
  51. $moduleLoaderListener = new ModuleLoaderListener($options);
  52. $moduleManager = $this->moduleManager;
  53. $this->assertEquals(1, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  54. $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  55. $moduleLoaderListener->attach($moduleManager->getEventManager());
  56. $this->assertEquals(2, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  57. $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  58. }
  59. public function testModuleLoaderListenerFunctionsAsAggregateListenerHasCache()
  60. {
  61. $options = new ListenerOptions(array(
  62. 'cache_dir' => $this->tmpdir,
  63. 'module_map_cache_key' => 'foo',
  64. 'module_map_cache_enabled' => true,
  65. ));
  66. file_put_contents($options->getModuleMapCacheFile(), '<?php return array();');
  67. $moduleLoaderListener = new ModuleLoaderListener($options);
  68. $moduleManager = $this->moduleManager;
  69. $this->assertEquals(1, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  70. $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  71. $moduleLoaderListener->attach($moduleManager->getEventManager());
  72. $this->assertEquals(2, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES)));
  73. $this->assertEquals(0, count($moduleManager->getEventManager()->getListeners(ModuleEvent::EVENT_LOAD_MODULES_POST)));
  74. }
  75. }