Improve some tests and docblocks

This commit is contained in:
Timothy Warren 2014-04-28 16:41:46 -04:00
parent 315dc5e1c5
commit 6a38213a62
10 changed files with 81 additions and 87 deletions

View File

@ -43,13 +43,13 @@ abstract class Abstract_Driver extends \PDO implements Driver_Interface {
/** /**
* Reference to sql class * Reference to sql class
* @var SQL_Interface * @var SQL\SQL_Interface
*/ */
public $sql; public $sql;
/** /**
* Reference to util class * Reference to util class
* @var Abstract_Util * @var Util\Abstract_Util
*/ */
public $util; public $util;
@ -340,7 +340,9 @@ abstract class Abstract_Driver extends \PDO implements Driver_Interface {
*/ */
public function get_tables() public function get_tables()
{ {
return $this->driver_query('table_list'); $tables = $this->driver_query('table_list');
natsort($tables);
return $tables;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -364,7 +366,9 @@ abstract class Abstract_Driver extends \PDO implements Driver_Interface {
*/ */
public function get_views() public function get_views()
{ {
return $this->driver_query('view_list'); $views = $this->driver_query('view_list');
sort($views);
return $views;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -583,10 +587,9 @@ abstract class Abstract_Driver extends \PDO implements Driver_Interface {
// and is not already quoted before quoting // and is not already quoted before quoting
// that value, otherwise, return the original value // that value, otherwise, return the original value
return ( return (
strpos($str, $this->escape_char) !== 0 is_string($str)
&& strpos($str, $this->escape_char) !== 0
&& strrpos($str, $this->escape_char) !== 0 && strrpos($str, $this->escape_char) !== 0
&& is_string($str)
&& ! is_numeric($str)
) )
? "{$this->escape_char}{$str}{$this->escape_char}" ? "{$this->escape_char}{$str}{$this->escape_char}"
: $str; : $str;

View File

@ -347,7 +347,7 @@ abstract class Abstract_Query_Builder implements Query_Builder_Interface {
{ {
$where = array(); $where = array();
$this->_mixed_set($where, $key, $val, self::BOTH); $this->_mixed_set($where, $key, $val, self::BOTH);
$this->where_values = $this->_mixed_set($this->where_values, $key, $val, self::VALUE); $this->_mixed_set($this->where_values, $key, $val, self::VALUE);
return $where; return $where;
} }

View File

@ -478,8 +478,8 @@ class Query_Builder extends Abstract_Query_Builder {
*/ */
public function set($key, $val = NULL) public function set($key, $val = NULL)
{ {
$this->set_array_keys = $this->_mixed_set($this->set_array_keys, $key, $val, self::KEY); $this->_mixed_set($this->set_array_keys, $key, $val, self::KEY);
$this->values = $this->_mixed_set($this->values, $key, $val, self::VALUE); $this->_mixed_set($this->values, $key, $val, self::VALUE);
// Use the keys of the array to make the insert/update string // Use the keys of the array to make the insert/update string
// Escape the field names // Escape the field names

View File

@ -131,7 +131,7 @@ SQL;
public function view_list() public function view_list()
{ {
return <<<SQL return <<<SQL
SELECT DISTINCT "RDB\$VIEW_NAME" SELECT DISTINCT TRIM("RDB\$VIEW_NAME")
FROM "RDB\$VIEW_RELATIONS" FROM "RDB\$VIEW_RELATIONS"
SQL; SQL;
} }
@ -201,7 +201,7 @@ SQL;
public function sequence_list() public function sequence_list()
{ {
return <<<SQL return <<<SQL
SELECT "RDB\$GENERATOR_NAME" SELECT TRIM("RDB\$GENERATOR_NAME")
FROM "RDB\$GENERATORS" FROM "RDB\$GENERATORS"
WHERE "RDB\$SYSTEM_FLAG" = 0 WHERE "RDB\$SYSTEM_FLAG" = 0
SQL; SQL;

View File

@ -62,7 +62,6 @@ class SQLite extends Abstract_Driver {
public function get_tables() public function get_tables()
{ {
$sql = $this->sql->table_list(); $sql = $this->sql->table_list();
$res = $this->query($sql); $res = $this->query($sql);
return db_filter($res->fetchAll(\PDO::FETCH_ASSOC), 'name'); return db_filter($res->fetchAll(\PDO::FETCH_ASSOC), 'name');
} }

View File

@ -98,8 +98,51 @@ abstract class DBTest extends Query_TestCase {
public function testGetViews() public function testGetViews()
{ {
$this->assertTrue(is_array($this->db->get_views())); $views = $this->db->get_views();
$expected = array('numbersview', 'testview');
$this->assertEqual($expected, array_values($views));
$this->assertTrue(is_array($views));
} }
// --------------------------------------------------------------------------
public function testGetTriggers()
{
// @TODO standardize trigger output for different databases
$triggers = $this->db->get_triggers();
$this->assertTrue(is_array($triggers));
}
// --------------------------------------------------------------------------
public function testGetSequences()
{
$seqs = $this->db->get_sequences();
// Normalize sequence names
$seqs = array_map('strtolower', $seqs);
$expected = array('newtable_seq');
$this->assertTrue(is_array($seqs));
$this->assertEqual($expected, $seqs);
}
// --------------------------------------------------------------------------
public function testGetProcedures()
{
$procedures = $this->db->get_procedures();
$this->assertTrue(is_array($procedures));
}
// --------------------------------------------------------------------------
public function testGetFunctions()
{
$funcs = $this->db->get_functions();
$this->assertTrue(is_array($funcs));
}
} }
// End of db_test.php // End of db_test.php

View File

@ -219,34 +219,6 @@ SQL;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
public function testGetSequences()
{
$this->assertTrue(is_array($this->db->get_sequences()));
}
// --------------------------------------------------------------------------
public function testGetProcedures()
{
$this->assertTrue(is_array($this->db->get_procedures()));
}
// --------------------------------------------------------------------------
public function testGetFunctions()
{
$this->assertTrue(is_array($this->db->get_functions()));
}
// --------------------------------------------------------------------------
public function testGetTriggers()
{
$this->assertTrue(is_array($this->db->get_triggers()));
}
// --------------------------------------------------------------------------
public function testErrorInfo() public function testErrorInfo()
{ {
$result = $this->db->errorInfo(); $result = $this->db->errorInfo();

View File

@ -195,27 +195,6 @@ SQL;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
public function testGetsProcedures()
{
$this->assertTrue(is_array($this->db->get_procedures()));
}
// --------------------------------------------------------------------------
public function testGetFunctions()
{
$this->assertTrue(is_array($this->db->get_functions()));
}
// --------------------------------------------------------------------------
public function testGetTriggers()
{
$this->assertTrue(is_array($this->db->get_triggers()));
}
// --------------------------------------------------------------------------
public function testGetSequences() public function testGetSequences()
{ {
$this->assertNull($this->db->get_sequences()); $this->assertNull($this->db->get_sequences());
@ -227,4 +206,6 @@ SQL;
{ {
$this->assertTrue(is_string($this->db->util->backup_structure())); $this->assertTrue(is_string($this->db->util->backup_structure()));
} }
} }

View File

@ -222,27 +222,6 @@ SQL;
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
public function testGetSequences()
{
$this->assertTrue(is_array($this->db->get_sequences()));
}
// --------------------------------------------------------------------------
public function testGetProcedures()
{
$this->assertTrue(is_array($this->db->get_procedures()));
}
// --------------------------------------------------------------------------
public function testGetTriggers()
{
$this->assertTrue(is_array($this->db->get_triggers()));
}
// --------------------------------------------------------------------------
public function testGetDBs() public function testGetDBs()
{ {
$this->assertTrue(is_array($this->db->get_dbs())); $this->assertTrue(is_array($this->db->get_dbs()));

View File

@ -261,15 +261,32 @@ SQL;
$this->assertEqual(NULL, $sql); $this->assertEqual(NULL, $sql);
} }
// --------------------------------------------------------------------------
public function testGetSystemTables() public function testGetSystemTables()
{ {
$sql = $this->db->get_system_tables(); $sql = $this->db->get_system_tables();
$this->assertTrue(is_array($sql)); $this->assertTrue(is_array($sql));
} }
public function testGetTriggers() // --------------------------------------------------------------------------
public function testGetSequences()
{ {
$sql = $this->db->get_triggers(); $this->assertNull($this->db->get_sequences());
$this->assertTrue(is_array($sql)); }
// --------------------------------------------------------------------------
public function testGetFunctions()
{
$this->assertNull($this->db->get_functions());
}
// --------------------------------------------------------------------------
public function testGetProcedures()
{
$this->assertNull($this->db->get_procedures());
} }
} }