Пример #1
0
 protected function mockYiiApplication($config = [])
 {
     $this->initAppFileSystem();
     //
     // create user's config file, as it will override apps config for database connection in bootstrap
     //TODO: remove duplicates
     $env_db = getenv('DB_TYPE');
     $db = $GLOBALS['db'][$env_db];
     /* @var $mycfg \app\components\Configuration  faking class */
     $mycfg = json_decode(file_get_contents(self::$baseTestDir . '/data/default_config.json'));
     $mycfg->system->version = '1.1';
     //to avoid migration install
     $mycfg->database->dbname = @$db['dbname'];
     $mycfg->database->filename = @$db['filename'];
     $mycfg->database->format = $env_db;
     $mycfg->database->host = @$db['host'];
     $mycfg->database->login = @$db['username'];
     $mycfg->database->password = @$db['password'];
     file_put_contents($this->getConfigFilename(), json_encode($mycfg));
     //
     //work cfg
     $cfg = (require dirname(self::$baseTestDir) . '/config/config.php');
     // make work cfg testable
     unset($cfg['id'], $cfg['basePath'], $cfg['vendorPath'], $cfg['components']['db']);
     parent::mockYiiApplication(\yii\helpers\ArrayHelper::merge($cfg, $config));
     //var_dump(\Yii::$app->mycfg); die;
 }