summaryrefslogtreecommitdiffstats
path: root/tests/mocks/database/db/driver.php
blob: 9bf5231e3c89c90aab6c45e46a93ce9bc8e7b0ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

class Mock_Database_DB_Driver extends CI_DB_driver {
	
	/**
	 * @var object The actual Driver
	 */
	protected $ci_db_driver;

	/**
	 * Instantiate the database driver
	 *
	 * @param  string 	DB Driver class name
	 * @param  array 	DB configuration to set
	 * @return void
	 */
	public function __construct($driver_class, $config = array())
	{
		if (is_string($driver_class)) $this->ci_db_driver = new $driver_class($config);
	}

	/**
	 * Overloading method, emulate the actual driver method (multiple inheritance workaround)
	 */
	public function __call($method, $arguments)
	{
		if ( ! is_callable(array($this->ci_db_driver, $method)))
		{
			throw new BadMethodCallException($method. ' not exists or not implemented');
		}

		return call_user_func_array(array($this->ci_db_driver, $method), $arguments);
	}
}

class CI_DB extends CI_DB_Driver {}