diff --git a/test-phpUnit/config/config.inc.php b/test-phpUnit/config/config.inc.php index 0b61fbc7f..48acaad5c 100644 --- a/test-phpUnit/config/config.inc.php +++ b/test-phpUnit/config/config.inc.php @@ -30,6 +30,7 @@ require_once(_XE_PATH_.'classes/db/DBCubrid.class.php'); require_once(_XE_PATH_.'classes/db/DBMssql.class.php'); require_once(_XE_PATH_.'classes/db/DBMysql.class.php'); + require_once(_XE_PATH_.'test-phpUnit/db/MockDb.php'); require_once(_XE_PATH_.'classes/xml/xmlquery/DBParser.class.php'); require_once(_XE_PATH_.'classes/xml/xmlquery/argument/Argument.class.php'); diff --git a/test-phpUnit/db/CubridTest.php b/test-phpUnit/db/CubridTest.php index 7eb3a986f..8e3752771 100644 --- a/test-phpUnit/db/CubridTest.php +++ b/test-phpUnit/db/CubridTest.php @@ -16,7 +16,9 @@ $db_info->slave_db = array(array('db_type' => 'cubrid','db_table_prefix' => 'xe_')); $oContext->setDbInfo($db_info); - DB::getParser(true); + + $db = new MockDb(); + $db->getParser(true); } /** diff --git a/test-phpUnit/db/MockDb.php b/test-phpUnit/db/MockDb.php new file mode 100644 index 000000000..bfdd6d3ef --- /dev/null +++ b/test-phpUnit/db/MockDb.php @@ -0,0 +1,81 @@ +getParser(); + DB::getParser(true); + } + + return $dbParser; + } + + function &getInstance(){ + $db_type = Context::getDBType(); + + if(!isset($GLOBALS['__DB__'])) $GLOBALS['__DB__'] = array(); + if(!isset($GLOBALS['__DB__'][$db_type])) { + switch($db_type){ + case 'mssql' : + $GLOBALS['__DB__'][$db_type] = new MockDBMssql; break; + case 'mysql' : + $GLOBALS['__DB__'][$db_type] = new MockDBMysql; break; + case 'cubrid' : + $GLOBALS['__DB__'][$db_type] = new MockDBCubrid; break; + } + } + + return $GLOBALS['__DB__'][$db_type]; + } + } + + /** + * @brief Mock up for MS SQL class + * + * Overrides default constructor in order to skip connect method + */ + class MockDBMssql extends DBMssql { + function MockDBMssql(){ + $this->_setDBInfo(); + } + } + + /** + * @brief Mock up for CUBRID class + * + * Overrides default constructor in order to skip connect method + */ + class MockDBCubrid extends DBCubrid { + function MockDBCubrid(){ + $this->_setDBInfo(); + } + } + + /** + * @brief Mock up for Mysql class + * + * Overri des default constructor in order to skip connect method. + */ + class MockDBMysql extends DBMysql { + function MockDBMysql(){ + $this->_setDBInfo(); + } + + /** + * Overrides mysql_real_escape_string, that returns null when no connection is present + */ + function addQuotes($string){ + return $string; + } + } + +?> \ No newline at end of file diff --git a/test-phpUnit/db/MssqlTest.php b/test-phpUnit/db/MssqlTest.php index 6e9f5392d..47149ee38 100644 --- a/test-phpUnit/db/MssqlTest.php +++ b/test-phpUnit/db/MssqlTest.php @@ -15,7 +15,8 @@ $oContext->setDbInfo($db_info); - DB::getParser(true); + $db = new MockDb(); + $db->getParser(true); } protected function tearDown() { diff --git a/test-phpUnit/db/MysqlTest.php b/test-phpUnit/db/MysqlTest.php index 5a643a789..d04c83ef6 100644 --- a/test-phpUnit/db/MysqlTest.php +++ b/test-phpUnit/db/MysqlTest.php @@ -16,7 +16,9 @@ $db_info->slave_db = array(array('db_type' => 'mysql','db_table_prefix' => 'xe_')); $oContext->setDbInfo($db_info); - DB::getParser(true); + + $db = new MockDb(); + $db->getParser(true); } /**