diff options
author | Andrey Andreev <narf@bofh.bg> | 2012-04-27 11:17:56 +0200 |
---|---|---|
committer | Andrey Andreev <narf@bofh.bg> | 2012-04-27 11:17:56 +0200 |
commit | 721c77fcf347751895623514fb2e4c89390afa67 (patch) | |
tree | cb1f7b5f7688d9090e9a90960a17d188ceef8083 /tests/mocks/database/db | |
parent | 871a6f979e4291365c40247158ccde8fccca3ae5 (diff) | |
parent | ced2c9ab41450cb632c042730604111ec2a24e1f (diff) |
Merge upstream branch
Diffstat (limited to 'tests/mocks/database/db')
-rw-r--r-- | tests/mocks/database/db/driver.php | 36 | ||||
-rw-r--r-- | tests/mocks/database/db/querybuilder.php | 10 |
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/mocks/database/db/driver.php b/tests/mocks/database/db/driver.php new file mode 100644 index 000000000..cb1820277 --- /dev/null +++ b/tests/mocks/database/db/driver.php @@ -0,0 +1,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 Mock_Database_DB_QueryBuilder {}
\ No newline at end of file diff --git a/tests/mocks/database/db/querybuilder.php b/tests/mocks/database/db/querybuilder.php new file mode 100644 index 000000000..1b95c92af --- /dev/null +++ b/tests/mocks/database/db/querybuilder.php @@ -0,0 +1,10 @@ +<?php + +if ( ! class_exists('CI_DB_query_builder')) +{ + class Mock_Database_DB_QueryBuilder extends CI_DB_active_record {} +} +else +{ + class Mock_Database_DB_QueryBuilder extends CI_DB_query_builder {} +} |