Simplify qbe test using new dummy dbi

This commit is contained in:
Michal Čihař 2012-09-17 16:01:18 +02:00
parent 6a77a55d8e
commit 160215bdc3
2 changed files with 82 additions and 47 deletions

View File

@ -62,6 +62,42 @@ $GLOBALS['dummy_queries'] = array(
array('innodb_file_format', 'Antelope'),
)
),
array(
'query' => 'SHOW TABLES FROM `qbe_test`;',
'result' => array(
array('table1'),
array('table2'),
)
),
array(
'query' => 'SHOW COLUMNS FROM `qbe_test`.`table1`',
'columns' => array(
'Field', 'Type', 'Null', 'Key', 'Default', 'Extra'
),
'result' => array(
array('i', 'int(11)', 'NO', 'PRI', 'NULL', 'auto_increment'),
array('o', 'int(11)', 'NO', 'MUL', 'NULL', ''),
)
),
array(
'query' => 'SHOW COLUMNS FROM `qbe_test`.`table2`',
'columns' => array(
'Field', 'Type', 'Null', 'Key', 'Default', 'Extra'
),
'result' => array(
array('i', 'int(11)', 'NO', 'PRI', 'NULL', 'auto_increment'),
array('o', 'int(11)', 'NO', 'MUL', 'NULL', ''),
)
),
array(
'query' => 'SHOW INDEXES FROM `qbe_test`.`table1`',
'result' => array(),
),
array(
'query' => 'SHOW INDEXES FROM `qbe_test`.`table2`',
'result' => array(),
),
);
/**
@ -176,6 +212,12 @@ function PMA_DBI_fetch_any($result)
function PMA_DBI_fetch_array($result)
{
$data = PMA_DBI_fetch_any($result);
if (is_array($data) && isset($GLOBALS['dummy_queries'][$result]['columns'])) {
foreach ($data as $key => $val) {
$data[$GLOBALS['dummy_queries'][$result]['columns'][$key]] = $val;
}
return $data;
}
return $data;
}
@ -189,6 +231,13 @@ function PMA_DBI_fetch_array($result)
function PMA_DBI_fetch_assoc($result)
{
$data = PMA_DBI_fetch_any($result);
if (is_array($data) && isset($GLOBALS['dummy_queries'][$result]['columns'])) {
$ret = array();
foreach ($data as $key => $val) {
$ret[$GLOBALS['dummy_queries'][$result]['columns'][$key]] = $val;
}
return $ret;
}
return $data;
}
@ -267,3 +316,32 @@ function PMA_DBI_num_rows($result)
return 0;
}
}
/**
* returns the number of rows affected by last query
*
* @param resource $link the mysql object
* @param bool $get_from_cache
*
* @return string|int
*/
function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
{
return 0;
}
/**
* return number of fields in given $result
*
* @param resource $result MySQL result
*
* @return int field count
*/
function PMA_DBI_num_fields($result)
{
if (isset($GLOBALS['dummy_queries'][$result]['columns'])) {
return count($GLOBALS['dummy_queries'][$result]['columns']);
} else {
return 0;
}
}

View File

@ -13,6 +13,8 @@ require_once 'libraries/DBQbe.class.php';
require_once 'libraries/php-gettext/gettext.inc';
require_once 'libraries/CommonFunctions.class.php';
require_once 'libraries/core.lib.php';
require_once 'libraries/database_interface.lib.php';
require_once 'libraries/Tracker.class.php';
require_once 'libraries/relation.lib.php';
class PMA_DBQbe_test extends PHPUnit_Framework_TestCase
@ -31,40 +33,7 @@ class PMA_DBQbe_test extends PHPUnit_Framework_TestCase
*/
protected function setUp()
{
if (! function_exists('PMA_DBI_query')) {
function PMA_DBI_query()
{
return array('table1', 'table2');
}
}
if (! function_exists('PMA_DBI_num_rows')) {
function PMA_DBI_num_rows()
{
return 2;
}
}
if (! function_exists('PMA_DBI_fetch_row')) {
function PMA_DBI_fetch_row()
{
return false;
}
}
if (! function_exists('PMA_DBI_get_columns')) {
function PMA_DBI_get_columns()
{
return array('column1', 'column2');
}
}
if (! function_exists('PMA_DBI_free_result')) {
function PMA_DBI_free_result()
{
return true;
}
}
if (! defined('PMA_DBI_QUERY_STORE')) {
define('PMA_DBI_QUERY_STORE', 1);
}
$this->object = new PMA_DBQbe('pma');
$this->object = new PMA_DBQbe('qbe_test');
}
/**
@ -308,12 +277,6 @@ class PMA_DBQbe_test extends PHPUnit_Framework_TestCase
*/
public function testGetIndexes()
{
if (! function_exists('PMA_DBI_get_table_indexes')) {
function PMA_DBI_get_table_indexes()
{
return array(2,3);
}
}
$this->assertEquals(
array(
'unique' => array(),
@ -335,12 +298,6 @@ class PMA_DBQbe_test extends PHPUnit_Framework_TestCase
*/
public function test_getLeftJoinColumnCandidates()
{
if (! function_exists('PMA_DBI_select_db')) {
function PMA_DBI_select_db()
{
return 'pma';
}
}
$this->assertEquals(
array(
0 => 'column2'
@ -369,7 +326,7 @@ class PMA_DBQbe_test extends PHPUnit_Framework_TestCase
array('table1','table2'),
array('column1', 'column2', 'column3'),
array('column2'),
array('pma')
array('qbe_test')
)
)
);