/** * testInsertData * * @since 2.4.0 */ public function testInsertData() { /* setup */ $installer = new Installer(); $installer->init($this->_config); $installer->insertData(array('adminName' => 'Admin', 'adminUser' => 'admin', 'adminPassword' => 'admin', 'adminEmail' => 'admin@localhost')); /* actual */ $actualArticles = Db::forTablePrefix('articles')->findMany()->count(); $actualCategories = Db::forTablePrefix('categories')->findMany()->count(); $actualExtras = Db::forTablePrefix('extras')->findMany()->count(); $actualGroups = Db::forTablePrefix('groups')->findMany()->count(); $actualSettings = Db::forTablePrefix('settings')->findMany()->count(); if (is_dir('modules/CallHome')) { $actualModules = Db::forTablePrefix('modules')->findMany()->count(); } $actualUsers = Db::forTablePrefix('users')->findMany()->count(); /* compare */ $this->assertEquals(1, $actualArticles); $this->assertEquals(1, $actualCategories); $this->assertEquals(6, $actualExtras); $this->assertEquals(2, $actualGroups); $this->assertEquals(26, $actualSettings); if (is_dir('modules/CallHome')) { $this->assertEquals(1, $actualModules); } $this->assertEquals(1, $actualUsers); }
/** * testInsertData * * @since 2.4.0 */ public function testInsertData() { /* setup */ $installer = new Installer($this->_config); $installer->init(); $installer->insertData(['adminName' => 'Test', 'adminUser' => 'test', 'adminPassword' => 'test', 'adminEmail' => '*****@*****.**']); /* actual */ $actualArticles = Db::forTablePrefix('articles')->findMany()->count(); $actualCategories = Db::forTablePrefix('categories')->findMany()->count(); $actualExtras = Db::forTablePrefix('extras')->findMany()->count(); $actualComments = Db::forTablePrefix('comments')->findMany()->count(); $actualGroups = Db::forTablePrefix('groups')->findMany()->count(); $actualUsers = Db::forTablePrefix('users')->findMany()->count(); $actualSettings = Db::forTablePrefix('settings')->findMany()->count(); if (is_dir('modules/CallHome') && is_dir('modules/Validator')) { $actualModules = Db::forTablePrefix('modules')->findMany()->count(); } /* compare */ $this->assertEquals(1, $actualArticles); $this->assertEquals(1, $actualCategories); $this->assertEquals(6, $actualExtras); $this->assertEquals(1, $actualComments); $this->assertEquals(2, $actualGroups); $this->assertEquals(1, $actualUsers); $this->assertEquals(25, $actualSettings); if (is_dir('modules/CallHome') && is_dir('modules/Validator')) { $this->assertEquals(2, $actualModules); } }
/** * install the database * * @since 3.0.0 * * @param array $optionArray * * @return boolean */ protected function _database($optionArray = []) { $adminName = $this->prompt('admin-name', $optionArray); $adminUser = $this->prompt('admin-user', $optionArray); $adminPassword = $this->prompt('admin-password', $optionArray); $adminEmail = $this->prompt('admin-email', $optionArray); if ($adminName && $adminUser && $adminPassword && $adminEmail) { $installer = new Installer($this->_config); $installer->init(); $installer->rawCreate(); $installer->insertData(['adminName' => $adminName, 'adminUser' => $adminUser, 'adminPassword' => $adminPassword, 'adminEmail' => $adminEmail]); return Db::getStatus() === 2; } return false; }
/** * reinstall * * @since 2.4.0 */ protected static function _reinstall() { $installer = new Installer(GlobalConfig::getInstance()); $installer->init(); $installer->rawDrop(); $installer->rawCreate(); $installer->insertData(array('adminName' => 'Admin', 'adminUser' => 'admin', 'adminPassword' => 'admin', 'adminEmail' => 'admin@localhost')); /* process modules */ foreach (self::$_config['modules'] as $key => $value) { if (is_dir('modules/' . $key)) { $module = new $value(); $module->install(); } } /* access and filter */ Db::forTablePrefix('groups')->findMany()->set(array('modules' => null, 'filter' => 1))->save(); }
/** * install the database * * @since 3.0.0 * * @param array $installArray * * @return array */ protected function _install($installArray = []) { $adminName = $installArray['adminName']; $adminUser = $installArray['adminUser']; $adminPassword = $installArray['adminPassword']; $adminEmail = $installArray['adminEmail']; if ($adminName && $adminUser && $adminPassword && $adminEmail) { $installer = new Installer($this->_config); $installer->init(); $installer->rawDrop(); $installer->rawCreate(); $installer->insertData(['adminName' => $installArray['adminName'], 'adminUser' => $installArray['adminUser'], 'adminPassword' => $installArray['adminPassword'], 'adminEmail' => $installArray['adminEmail']]); return Db::getStatus() === 2; } return false; }