summaryrefslogtreecommitdiffstats
path: root/tests/mocks/database/db.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mocks/database/db.php')
-rw-r--r--tests/mocks/database/db.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/mocks/database/db.php b/tests/mocks/database/db.php
new file mode 100644
index 000000000..d7a6351a0
--- /dev/null
+++ b/tests/mocks/database/db.php
@@ -0,0 +1,43 @@
+<?php
+
+class Mock_Database_DB {
+
+ private $config = array();
+
+ /**
+ * Prepare database configuration skeleton
+ *
+ * @param array DB configuration to set
+ * @return void
+ */
+ public function __construct($config = array())
+ {
+ include_once(BASEPATH.'database/DB.php');
+
+ $this->config = $config;
+ }
+
+ public function set_config($group = 'default')
+ {
+ if ( ! isset($this->config[$group]))
+ {
+ throw new InvalidArgumentException('Group '.$group.' not exists');
+ }
+
+ if ( ! empty($this->config[$group]['dsn']))
+ {
+ $dsn = $this->config[$group]['dsn'];
+ }
+ else
+ {
+ $config = $this->config[$group];
+ $dsn = $config['dbdriver'].'://'.$config['username'].':'.$config['password']
+ .'@'.$config['hostname'].'/'.$config['database'];
+
+ }
+
+ $params = array_slice($this->config[$group], 6);
+
+ return $dsn.http_build_query($params);
+ }
+} \ No newline at end of file