summaryrefslogtreecommitdiffstats
path: root/tests/mocks/database/db.php
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2019-09-19 14:08:45 +0200
committerAndrey Andreev <narf@devilix.net>2019-09-19 14:08:45 +0200
commitb73eb19aed66190c10c9cad476da7c36c271d6dc (patch)
treeb3d5d4f960569c30701934416d6d51628bde81a7 /tests/mocks/database/db.php
parent6e052d80b95b9332ed592cdc3431b5f9dc8dd250 (diff)
[ci skip] 3.1.11 release
Diffstat (limited to 'tests/mocks/database/db.php')
-rw-r--r--tests/mocks/database/db.php142
1 files changed, 0 insertions, 142 deletions
diff --git a/tests/mocks/database/db.php b/tests/mocks/database/db.php
deleted file mode 100644
index 00dd884b0..000000000
--- a/tests/mocks/database/db.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-class Mock_Database_DB {
-
- /**
- * @var array DB configuration
- */
- private $config = array();
-
- /**
- * @var string DB driver name
- */
- private static $dbdriver = '';
-
- /**
- * @var string DB sub-driver name
- */
- private static $subdriver = '';
-
- /**
- * Prepare database configuration skeleton
- *
- * @param array DB configuration to set
- * @return void
- */
- public function __construct($config = array())
- {
- $this->config = $config;
- }
-
- /**
- * Build DSN connection string for DB driver instantiate process
- *
- * @param string Group name
- * @return string DSN Connection string
- */
- public function set_dsn($group = 'default')
- {
- if ( ! isset($this->config[$group]))
- {
- throw new InvalidArgumentException('Group '.$group.' not exists');
- }
-
- self::$dbdriver = $this->config[$group]['dbdriver'];
- if (isset($this->config[$group]['subdriver']))
- {
- self::$subdriver = $this->config[$group]['subdriver'];
- }
-
- $params = array(
- 'dbprefix' => '',
- 'pconnect' => FALSE,
- 'db_debug' => FALSE,
- 'cache_on' => FALSE,
- 'cachedir' => '',
- 'char_set' => 'utf8',
- 'dbcollat' => 'utf8_general_ci',
- 'swap_pre' => '',
- 'stricton' => FALSE
- );
-
- $config = array_merge($this->config[$group], $params);
- $dsnstring = empty($config['dsn']) ? FALSE : $config['dsn'];
- $subdriver = empty($config['subdriver']) ? FALSE: $config['subdriver'];
- $failover = empty($config['failover']) ? FALSE : $config['failover'];
-
- $dsn = $config['dbdriver'].'://'.$config['username'].':'.$config['password']
- .'@'.$config['hostname'].'/'.$config['database'];
-
- // Build the parameter
- $other_params = array_slice($config, 6);
- if ($dsnstring) $other_params['dsn'] = $dsnstring;
- if ($subdriver) $other_params['subdriver'] = $subdriver;
- if ($failover) $other_params['failover'] = $failover;
-
- return $dsn.'?'.http_build_query($other_params);
- }
-
- /**
- * Return a database config array
- *
- * @see ./config
- * @param string Driver based configuration
- * @return array
- */
- public static function config($driver)
- {
- $dir = realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR;
- return include($dir.'config'.DIRECTORY_SEPARATOR.$driver.'.php');
- }
-
- /**
- * Main DB method wrapper
- *
- * @param string Group or DSN string
- * @param bool
- * @return object
- */
- public static function DB($group, $query_builder = FALSE)
- {
- // Create dummy driver and builder files to "load" - the mocks have
- // already triggered autoloading of the real files
- $case = CI_TestCase::instance();
- $driver = self::$dbdriver;
- $subdriver = self::$subdriver;
- $case->ci_vfs_create(array(
- 'DB_driver.php' => '',
- 'DB_result.php' => '',
- 'DB_forge.php' => '',
- 'DB_query_builder.php' => ''
- ), '', $case->ci_base_root, 'database');
- if (file_exists(SYSTEM_PATH.'database/drivers/'.$driver.'/'.$driver.'_driver.php'))
- {
- $case->ci_vfs_create(array(
- $driver.'_driver.php' => '',
- $driver.'_result.php' => '',
- $driver.'_forge.php' => ''
- ), '', $case->ci_base_root, 'database/drivers/'.$driver);
- }
- if ($subdriver)
- {
- $case->ci_vfs_create(array(
- $driver.'_'.$subdriver.'_driver.php' => '',
- $driver.'_'.$subdriver.'_forge.php' => ''
- ), '', $case->ci_base_root, 'database/drivers/'.$driver.'/subdrivers');
- }
-
- include_once(SYSTEM_PATH.'database/DB.php');
-
- try
- {
- $db = DB($group, $query_builder);
- }
- catch (Exception $e)
- {
- throw new RuntimeException($e->getMessage());
- }
-
- return $db;
- }
-
-} \ No newline at end of file