ModuleManagerTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. class ModuleManagerTest extends PHPUnit_Framework_TestCase
  3. {
  4. /**
  5. * @var \Tools\Context $context
  6. **/
  7. private $context;
  8. public function __construct()
  9. {
  10. parent::__construct();
  11. list($server, $mysqlConfig) = require("test/config.php");
  12. $this->dbh = new PDO($mysqlConfig[4][0], $mysqlConfig[1], $mysqlConfig[2]);
  13. $this->dbh->exec("DROP DATABASE ".$mysqlConfig[4][1]);
  14. $this->dbh->exec("CREATE DATABASE ".$mysqlConfig[4][1]);
  15. \Entity\ModelBase::init($mysqlConfig);
  16. $this->context = new \Tools\Context($server);
  17. \Entity\ModelBase::setup();
  18. $this->context->serve();
  19. }
  20. public function testEnv()
  21. {
  22. list($server, $mysqlConfig) = require("test/config.php");
  23. unset($server["phpUnit"]);
  24. $context = new \Tools\Context($server);
  25. $context->serve();
  26. $this->assertFalse($context->router->overrideUrl("test", "test"));
  27. }
  28. public function testInstall()
  29. {
  30. $moduleMan = $this->context->moduleManager;
  31. $this->assertNotNull($moduleMan);
  32. $this->assertTrue($this->context->router->overrideUrl("modulesPath", dirname(__FILE__)."/modules/"));
  33. $mod = $moduleMan->install("test");
  34. $this->assertNotFalse($mod);
  35. $this->assertEquals("realName", $mod->getName());
  36. $this->assertEquals("realName", $mod->getParentName());
  37. $this->assertNotNull($mod->entity->id);
  38. try {
  39. $mod->test;
  40. $this->fail("Excepted Exception");
  41. }
  42. catch (\Exception $e) {}
  43. $modEntity = new \Entity\Module($mod->entity->id);
  44. $this->assertEquals($mod->entity->id, $modEntity->id);
  45. $this->assertEquals("realName", $modEntity->name);
  46. $this->assertEquals("My description", $modEntity->description);
  47. $this->assertEquals("test", $modEntity->directory);
  48. $this->assertEquals(1, $modEntity->active);
  49. }
  50. public function testInstalled()
  51. {
  52. list($server, $mysqlConfig) = require("test/config.php");
  53. $modEntity = new \Entity\Module(1);
  54. $modEntity->directory = "test2";
  55. $modEntity->save();
  56. $context = new \Tools\Context($server);
  57. $context->serve();
  58. $this->assertTrue($context->router->overrideUrl("modulesPath", dirname(__FILE__)."/modules/"));
  59. $this->assertInternalType("array", \Entity\Module::getActivated());
  60. $this->assertCount(1, \Entity\Module::getActivated());
  61. $mman = new \Tools\ModuleManager($context);
  62. $this->assertNotNull($mman);
  63. $this->assertInternalType("array", $mman->modules);
  64. $this->assertCount(1, $mman->modules);
  65. $this->assertNotFalse($mman->getModuleFromId(1));
  66. $this->assertNotFalse($mman->{"_id_1"});
  67. $this->assertFalse($mman->getModuleFromId(-2));
  68. $this->assertFalse($mman->{"_id_-2"});
  69. $this->assertEquals("test 2", $mman->_id_1->getName());
  70. $modEntity = new \Entity\Module(1);
  71. $modEntity->directory = "test3";
  72. $modEntity->save();
  73. $context = new \Tools\Context($server);
  74. $context->serve();
  75. $this->assertTrue($context->router->overrideUrl("modulesPath", dirname(__FILE__)."/modules/"));
  76. $this->assertInternalType("array", \Entity\Module::getActivated());
  77. $this->assertCount(0, \Entity\Module::getActivated());
  78. $mman = new \Tools\ModuleManager($context);
  79. $this->assertNotNull($mman);
  80. $this->assertInternalType("array", $mman->modules);
  81. $this->assertCount(0, $mman->modules);
  82. $this->assertFalse($mman->getModuleFromId(1));
  83. $modEntity = new \Entity\Module(1);
  84. $this->assertEquals(0, $modEntity->active);
  85. }
  86. }