Improve code coverage

This commit is contained in:
Timothy Warren 2014-02-11 14:29:41 -05:00
parent 44dc7f341f
commit bed0d1bb04
7 changed files with 34 additions and 92 deletions

View File

@ -83,26 +83,19 @@ abstract class DB_PDO extends PDO {
* @param string $sql * @param string $sql
* @param array $data * @param array $data
* @return mixed PDOStatement / FALSE * @return mixed PDOStatement / FALSE
* @throws InvalidArgumentException
*/ */
public function prepare_query($sql, $data) public function prepare_query($sql, $data)
{ {
// Prepare the sql // Prepare the sql
$query = $this->prepare($sql); $query = $this->prepare($sql);
if( ! (is_object($query) || is_resource($query)))
{
$this->get_last_error();
return NULL;
}
// Set the statement in the class variable for easy later access // Set the statement in the class variable for easy later access
$this->statement = $query; $this->statement = $query;
if( ! (is_array($data) || is_object($data))) if( ! (is_array($data) || is_object($data)))
{ {
trigger_error("Invalid data argument"); throw new InvalidArgumentException("Invalid data argument");
return NULL;
} }
// Bind the parameters // Bind the parameters
@ -114,16 +107,9 @@ abstract class DB_PDO extends PDO {
} }
$res = $query->bindValue($k, $value); $res = $query->bindValue($k, $value);
if( ! $res)
{
trigger_error("Parameter not successfully bound");
return NULL;
}
} }
return $query; return $query;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -164,20 +150,6 @@ abstract class DB_PDO extends PDO {
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
/**
* Return the last error for the current database connection
*
* @return string
*/
public function get_last_error()
{
list($i1, $i2, $i3) = $this->errorInfo();
echo "Error: <pre>{$i1}:{$i2}\n{$i3}</pre>";
}
// --------------------------------------------------------------------------
/** /**
* Quote database table name, and set prefix * Quote database table name, and set prefix
* *
@ -289,14 +261,11 @@ abstract class DB_PDO extends PDO {
*/ */
protected function _quote($str) protected function _quote($str)
{ {
// Don't quote numbers // Don't add additional quotes, or quote numbers
if ( ! is_string($str) && is_numeric($str)) if (strpos($str, $this->escape_char) === 0 ||
{ strrpos($str, $this->escape_char) === 0 ||
return $str; ( ! is_string($str) && is_numeric($str))
} )
// Don't add additional quotes
if (strpos($str, $this->escape_char) === 0 || strrpos($str, $this->escape_char) === 0)
{ {
return $str; return $str;
} }
@ -552,4 +521,4 @@ abstract class DB_PDO extends PDO {
return array($sql, $vals); return array($sql, $vals);
} }
} }
// End of db_pdo.php // End of db_pdo.php

View File

@ -47,10 +47,7 @@ abstract class DB_Util {
*/ */
public function __call($method, $args) public function __call($method, $args)
{ {
if (method_exists($this->conn, $method)) return call_user_func_array(array($this->conn, $method), $args);
{
return call_user_func_array(array($this->conn, $method), $args);
}
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

View File

@ -91,14 +91,7 @@ class Query_Parser {
foreach($array as $row) foreach($array as $row)
{ {
if (is_array($row)) $new_array[] = (is_array($row)) ? $row[0] : $row;
{
$new_array[] = $row[0];
}
else
{
$new_array[] = $row;
}
} }
return $new_array; return $new_array;
@ -106,4 +99,4 @@ class Query_Parser {
} }
// End of query_parser.php // End of query_parser.php

View File

@ -64,10 +64,7 @@ class Firebird extends DB_PDO {
$this->conn = fbird_connect($dbpath, $user, $pass, 'utf-8', 0); $this->conn = fbird_connect($dbpath, $user, $pass, 'utf-8', 0);
// Throw an exception to make this match other pdo classes // Throw an exception to make this match other pdo classes
if ( ! is_resource($this->conn)) if ( ! is_resource($this->conn)) throw new PDOException(fbird_errmsg());
{
throw new PDOException(fbird_errmsg());
}
// Load these classes here because this // Load these classes here because this
// driver does not call the constructor // driver does not call the constructor
@ -82,14 +79,6 @@ class Firebird extends DB_PDO {
$class = __CLASS__."_util"; $class = __CLASS__."_util";
$this->util = new $class($this); $this->util = new $class($this);
} }
/**
* Clean up database connections
*/
public function __destruct()
{
fbird_close($this->conn);
}
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@ -116,20 +105,15 @@ class Firebird extends DB_PDO {
*/ */
public function query($sql) public function query($sql)
{ {
if (empty($sql)) if (empty($sql)) throw new PDOException("Query method requires an sql query!");
{
throw new PDOException("Query method requires an sql query!");
}
$this->statement_link = (isset($this->trans)) $this->statement_link = (isset($this->trans))
? fbird_query($this->trans, $sql) ? fbird_query($this->trans, $sql)
: fbird_query($this->conn, $sql); : fbird_query($this->conn, $sql);
// Throw the error as a exception // Throw the error as a exception
if ($this->statement_link === FALSE) $err_string = fbird_errmsg() . "Last query:" . $this->last_query;
{ if ($this->statement_link === FALSE) throw new PDOException($err_string);
throw new PDOException(fbird_errmsg() . "Last query:" . $this->last_query);
}
$this->statement = new FireBird_Result($this->statement_link); $this->statement = new FireBird_Result($this->statement_link);
@ -151,10 +135,7 @@ class Firebird extends DB_PDO {
$this->statement_link = fbird_prepare($this->conn, $query); $this->statement_link = fbird_prepare($this->conn, $query);
// Throw the error as an exception // Throw the error as an exception
if ($this->statement_link === FALSE) if ($this->statement_link === FALSE) throw new PDOException(fbird_errmsg());
{
throw new PDOException(fbird_errmsg());
}
$this->statement = new FireBird_Result($this->statement_link); $this->statement = new FireBird_Result($this->statement_link);
@ -170,12 +151,7 @@ class Firebird extends DB_PDO {
*/ */
public function beginTransaction() public function beginTransaction()
{ {
if(($this->trans = fbird_trans($this->conn)) !== NULL) return (($this->trans = fbird_trans($this->conn)) !== NULL) ? TRUE : NULL;
{
return TRUE;
}
return NULL;
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

View File

@ -38,6 +38,7 @@ class MySQL extends DB_PDO {
*/ */
public function __construct($dsn, $username=null, $password=null, $options=array()) public function __construct($dsn, $username=null, $password=null, $options=array())
{ {
// Automatically set the charset to UTF-8
if (defined('PDO::MYSQL_ATTR_INIT_COMMAND')) if (defined('PDO::MYSQL_ATTR_INIT_COMMAND'))
{ {
$options = array_merge($options, array( $options = array_merge($options, array(
@ -45,11 +46,6 @@ class MySQL extends DB_PDO {
)); ));
} }
if (strpos($dsn, 'mysql') === FALSE)
{
$dsn = 'mysql:'.$dsn;
}
parent::__construct($dsn, $username, $password, $options); parent::__construct($dsn, $username, $password, $options);
} }

View File

@ -31,11 +31,6 @@ class PgSQL extends DB_PDO {
*/ */
public function __construct($dsn, $username=null, $password=null, $options=array()) public function __construct($dsn, $username=null, $password=null, $options=array())
{ {
if (strpos($dsn, 'pgsql') === FALSE)
{
$dsn = 'pgsql:'.$dsn;
}
parent::__construct($dsn, $username, $password, $options); parent::__construct($dsn, $username, $password, $options);
} }

View File

@ -29,6 +29,22 @@ abstract class QBTest extends UnitTestCase {
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Get Tests // ! Get Tests
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
public function TestInvalidConnectionName()
{
if (empty($this->db)) return;
try
{
$db = Query('foo');
}
catch (InvalidArgumentException $e)
{
$this->assertTrue(TRUE);
}
}
// --------------------------------------------------------------------------
public function TestQueryFunctionAlias() public function TestQueryFunctionAlias()
{ {