diff --git a/.travis.yml b/.travis.yml
index 3838fc8..a757fc0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,5 @@
+sudo: false
+
language: php
php:
@@ -15,7 +17,7 @@ before_script:
script:
- mkdir -p build/logs
- - cd tests && phpunit --coverage-clover build/logs/clover.xml
+ - phpunit --coverage-clover build/logs/clover.xml
after_script:
- wget https://scrutinizer-ci.com/ocular.phar
diff --git a/Query/Abstract_Driver.php b/Query/Abstract_Driver.php
index 1cb518c..4be2106 100644
--- a/Query/Abstract_Driver.php
+++ b/Query/Abstract_Driver.php
@@ -41,13 +41,13 @@ abstract class Abstract_Driver extends \PDO implements Driver_Interface {
/**
* Reference to sql class
- * @var SQL\SQL_Interface
+ * @var SQL_Interface
*/
- public $sql;
+ protected $sql;
/**
* Reference to util class
- * @var Util\Abstract_Util
+ * @var Abstract_Util
*/
public $util;
diff --git a/Query/Connection_Manager.php b/Query/Connection_Manager.php
index 3c23297..134c78d 100644
--- a/Query/Connection_Manager.php
+++ b/Query/Connection_Manager.php
@@ -123,7 +123,6 @@ final class Connection_Manager {
$dbtype = ucfirst($dbtype);
$driver = "\\Query\\Drivers\\{$dbtype}\\Driver";
-//echo $driver . "\n";
// Create the database connection
$db = ( ! empty($params->user))
@@ -158,7 +157,7 @@ final class Connection_Manager {
/**
* Parses params into a dsn and option array
*
- * @param \stdClass $params
+ * @param \stdClass $set_params
* @return array
* @throws BadDBDriverException
*/
@@ -183,7 +182,15 @@ final class Connection_Manager {
}
// Create the dsn for the database to connect to
- $dsn = $this->create_dsn($dbtype, $params);
+ if (strtolower($dbtype) === 'firebird')
+ {
+ $dsn = "{$params->host}:{$params->file}";
+ }
+ else
+ {
+ $dsn = $this->create_dsn($dbtype, $params);
+ }
+
return array($dsn, $dbtype, $params, $options);
}
@@ -199,10 +206,14 @@ final class Connection_Manager {
*/
private function create_dsn($dbtype, \stdClass $params)
{
- if ($dbtype === 'firebird') $dsn = "{$params->host}:{$params->file}";
- elseif ($dbtype === 'sqlite') $dsn = $params->file;
+ if ($dbtype === 'sqlite')
+ {
+ $dsn = $params->file;
+ }
else
{
+ if (strtolower($dbtype) === 'pdo_firebird') $dbtype = 'firebird';
+
$dsn = strtolower($dbtype) . ':';
if ( ! empty($params->database))
@@ -224,7 +235,7 @@ final class Connection_Manager {
foreach($params as $key => $val)
{
- if ( ! isset($skip[$key]))
+ if (( ! array_key_exists($key, $skip)) && ! empty($val))
{
$dsn .= ";{$key}={$val}";
}
diff --git a/Query/Drivers/Firebird/Driver.php b/Query/Drivers/Firebird/Driver.php
index c044c7f..2bbb055 100644
--- a/Query/Drivers/Firebird/Driver.php
+++ b/Query/Drivers/Firebird/Driver.php
@@ -80,7 +80,6 @@ class Driver extends \Query\Abstract_Driver {
*/
public function __construct($dbpath, $user='SYSDBA', $pass='masterkey', array $options = array())
{
-
$connect_function = (isset($options[\PDO::ATTR_PERSISTENT]) && $options[\PDO::ATTR_PERSISTENT] == TRUE)
? '\\fbird_pconnect'
: '\\fbird_connect';
@@ -195,7 +194,7 @@ class Driver extends \Query\Abstract_Driver {
$err_string = \fbird_errmsg() . "Last query:" . $this->last_query;
if ($this->statement_link === FALSE) throw new \PDOException($err_string, \fbird_errcode(), NULL);
- $this->statement = new FireBird_Result($this->statement_link, $this);
+ $this->statement = new Result($this->statement_link, $this);
return $this->statement;
}
@@ -217,7 +216,7 @@ class Driver extends \Query\Abstract_Driver {
// Throw the error as an exception
if ($this->statement_link === FALSE) throw new \PDOException(\fbird_errmsg(), \fbird_errcode(), NULL);
- $this->statement = new FireBird_Result($this->statement_link, $this);
+ $this->statement = new Result($this->statement_link, $this);
return $this->statement;
}
diff --git a/Query/Drivers/Firebird/Result.php b/Query/Drivers/Firebird/Result.php
index 21a0770..89f14f2 100644
--- a/Query/Drivers/Firebird/Result.php
+++ b/Query/Drivers/Firebird/Result.php
@@ -60,7 +60,7 @@ class Result extends \PDOStatement {
* @param \Query\Driver\Firebird|null $db
* @return void
*/
- public function __construct($link, Firebird $db = NULL)
+ public function __construct($link, Driver $db = NULL)
{
if ( ! is_null($db)) $this->db = $db;
$this->statement = $link;
diff --git a/Query/Drivers/Firebird/Util.php b/Query/Drivers/Firebird/Util.php
index 669e958..ef55fe8 100644
--- a/Query/Drivers/Firebird/Util.php
+++ b/Query/Drivers/Firebird/Util.php
@@ -13,7 +13,7 @@
// --------------------------------------------------------------------------
-namespace Query\Drivers\Util;
+namespace Query\Drivers\Firebird;
/**
* Firebird-specific backup, import and creation methods
@@ -21,7 +21,7 @@ namespace Query\Drivers\Util;
* @package Query
* @subpackage Drivers
*/
-class Firebird extends \Query\Abstract_Util {
+class Util extends \Query\Abstract_Util {
/**
* Convenience public function to generate sql for creating a db table
diff --git a/phpunit.xml b/phpunit.xml
new file mode 100644
index 0000000..182d28f
--- /dev/null
+++ b/phpunit.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+ coverage
+ docs
+ tests
+
+
+
+
+ tests/core/core.php
+ tests/core/db_qp_test.php
+
+
+ tests/databases/mysql/MySQLTest.php
+ tests/databases/mysql/MySQLQBTest.php
+
+
+ tests/databases/pgsql/PgSQLTest.php
+ tests/databases/pgsql/PgSQLQBTest.php
+
+
+ tests/databases/sqlite/SQLiteTest.php
+ tests/databases/sqlite/SQLiteQBTest.php
+
+
+ tests/databases/firebird/FirebirdTest.php
+ tests/databases/firebird/FirebirdQBTest.php
+
+
+
+
\ No newline at end of file
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 11d46ed..772e34a 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -102,23 +102,4 @@ require_once(QTEST_DIR . '/core/db_test.php');
require_once(QTEST_DIR . '/core/db_qp_test.php');
require_once(QTEST_DIR . '/core/db_qb_test.php');
-// Preset SQLite connection, so there aren't locking issues
-if (extension_loaded('pdo_sqlite'))
-{
- $path = QTEST_DIR.QDS.'db_files'.QDS.'test_sqlite.db';
- @unlink($path);
- $params = array(
- 'type' => 'sqlite',
- 'file' => ':memory:',
- 'host' => 'localhost',
- 'prefix' => 'create_',
- 'alias' => 'test_sqlite',
- 'options' => array(
- PDO::ATTR_PERSISTENT => TRUE
- )
- );
-
- Query($params);
-}
-
// End of bootstrap.php
\ No newline at end of file
diff --git a/tests/core/db_test.php b/tests/core/db_test.php
index 93b9d33..f41b3ae 100644
--- a/tests/core/db_test.php
+++ b/tests/core/db_test.php
@@ -18,20 +18,22 @@
*/
abstract class DBTest extends Query_TestCase {
+ protected static $db = NULL;
+
abstract public function testConnection();
// --------------------------------------------------------------------------
- public function tearDown()
+ public static function tearDownAfterClass()
{
- $this->db = NULL;
+ self::$db = NULL;
}
// --------------------------------------------------------------------------
public function testGetTables()
{
- $tables = $this->db->get_tables();
+ $tables = self::$db->get_tables();
$this->assertTrue(is_array($tables));
$this->assertTrue( ! empty($tables));
}
@@ -40,7 +42,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetSystemTables()
{
- $tables = $this->db->get_system_tables();
+ $tables = self::$db->get_system_tables();
$this->assertTrue(is_array($tables));
$this->assertTrue( ! empty($tables));
}
@@ -49,14 +51,14 @@ abstract class DBTest extends Query_TestCase {
public function testBackupData()
{
- $this->assertTrue(is_string($this->db->util->backup_data(array('create_delete', TRUE))));
+ $this->assertTrue(is_string(self::$db->util->backup_data(array('create_delete', TRUE))));
}
// --------------------------------------------------------------------------
public function testGetColumns()
{
- $cols = $this->db->get_columns('test');
+ $cols = self::$db->get_columns('test');
$this->assertTrue(is_array($cols));
$this->assertTrue( ! empty($cols));
}
@@ -65,7 +67,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetTypes()
{
- $types = $this->db->get_types();
+ $types = self::$db->get_types();
$this->assertTrue(is_array($types));
$this->assertTrue( ! empty($types));
}
@@ -82,7 +84,7 @@ abstract class DBTest extends Query_TestCase {
'delete' => 'CASCADE'
));
- $keys = $this->db->get_fks('testconstraints2');
+ $keys = self::$db->get_fks('testconstraints2');
$this->assertEqual($expected, $keys);
}
@@ -90,7 +92,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetIndexes()
{
- $keys = $this->db->get_indexes('test');
+ $keys = self::$db->get_indexes('test');
$this->assertTrue(is_array($keys));
}
@@ -98,7 +100,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetViews()
{
- $views = $this->db->get_views();
+ $views = self::$db->get_views();
$expected = array('numbersview', 'testview');
$this->assertEqual($expected, array_values($views));
$this->assertTrue(is_array($views));
@@ -110,7 +112,7 @@ abstract class DBTest extends Query_TestCase {
{
// @TODO standardize trigger output for different databases
- $triggers = $this->db->get_triggers();
+ $triggers = self::$db->get_triggers();
$this->assertTrue(is_array($triggers));
}
@@ -118,7 +120,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetSequences()
{
- $seqs = $this->db->get_sequences();
+ $seqs = self::$db->get_sequences();
// Normalize sequence names
$seqs = array_map('strtolower', $seqs);
@@ -133,7 +135,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetProcedures()
{
- $procedures = $this->db->get_procedures();
+ $procedures = self::$db->get_procedures();
$this->assertTrue(is_array($procedures));
}
@@ -141,7 +143,7 @@ abstract class DBTest extends Query_TestCase {
public function testGetFunctions()
{
- $funcs = $this->db->get_functions();
+ $funcs = self::$db->get_functions();
$this->assertTrue(is_array($funcs));
}
}
diff --git a/tests/databases/firebird/FirebirdQBTest.php b/tests/databases/firebird/FirebirdQBTest.php
index 654f8e8..28f6122 100644
--- a/tests/databases/firebird/FirebirdQBTest.php
+++ b/tests/databases/firebird/FirebirdQBTest.php
@@ -21,13 +21,13 @@ class FirebirdQBTest extends QBTest {
public function setUp()
{
- $dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB';
-
if ( ! function_exists('\\fbird_connect'))
{
$this->markTestSkipped('Firebird extension does not exist');
}
+ $dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB';
+
// test the query builder
$params = new Stdclass();
$params->alias = 'fire';
@@ -44,7 +44,7 @@ class FirebirdQBTest extends QBTest {
{
try
{
- $db = Query('fire');
+ $db = Query('water');
}
catch(InvalidArgumentException $e)
{
@@ -52,13 +52,20 @@ class FirebirdQBTest extends QBTest {
}
}
+ public function testQueryFunctionAlias()
+ {
+ $db = Query();
+
+ $this->assertTrue($this->db === $db);
+ }
+
public function testGetNamedConnection()
{
$dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB';
// test the query builder
$params = new Stdclass();
- $params->alias = 'fire';
+ $params->alias = 'wood';
$params->type = 'firebird';
$params->file = $dbpath;
$params->host = 'localhost';
@@ -66,7 +73,7 @@ class FirebirdQBTest extends QBTest {
$params->pass = 'masterkey';
$params->prefix = '';
$f_conn = Query($params);
- $q_conn = Query('fire');
+ $q_conn = Query('wood');
$this->assertReference($f_conn, $q_conn);
}
@@ -131,7 +138,6 @@ class FirebirdQBTest extends QBTest {
public function testBackupStructure()
{
-
$existing = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB';
$backup = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_BKP.FDB';
diff --git a/tests/databases/firebird/FirebirdTest.php b/tests/databases/firebird/FirebirdTest.php
index 6ba1faf..915e8c7 100644
--- a/tests/databases/firebird/FirebirdTest.php
+++ b/tests/databases/firebird/FirebirdTest.php
@@ -23,26 +23,29 @@
*/
class FirebirdTest extends DBtest {
- public function setUp()
+ public static function setupBeforeClass()
{
$dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB';
+ // test the db driver directly
+ self::$db = new \Query\Drivers\Firebird\Driver('localhost:'.$dbpath);
+ self::$db->table_prefix = 'create_';
+ }
+
+ public function setUp()
+ {
if ( ! function_exists('\\fbird_connect'))
{
$this->markTestSkipped('Firebird extension does not exist');
}
- // test the db driver directly
- $this->db = new \Query\Drivers\Firebird\Driver('localhost:'.$dbpath);
- $this->db->table_prefix = 'create_';
- $this->tables = $this->db->get_tables();
+ $this->tables = self::$db->get_tables();
}
// --------------------------------------------------------------------------
public function tearDown()
{
- unset($this->db);
unset($this->tables);
}
@@ -53,7 +56,7 @@ class FirebirdTest extends DBtest {
*/
public function testNullResultMethods()
{
- $obj = $this->db->query('SELECT "id" FROM "create_test"');
+ $obj = self::$db->query('SELECT "id" FROM "create_test"');
$val = "bar";
@@ -75,7 +78,7 @@ class FirebirdTest extends DBtest {
public function testConnection()
{
- $this->assertIsA($this->db, '\\Query\\Drivers\\Firebird\\Driver');
+ $this->assertIsA(self::$db, '\\Query\\Drivers\\Firebird\\Driver');
}
// --------------------------------------------------------------------------
@@ -84,7 +87,7 @@ class FirebirdTest extends DBtest {
{
$only_system = TRUE;
- $tables = $this->db->get_system_tables();
+ $tables = self::$db->get_system_tables();
foreach($tables as $t)
{
@@ -105,15 +108,15 @@ class FirebirdTest extends DBtest {
public function testCreateTable()
{
//Attempt to create the table
- $sql = $this->db->util->create_table('create_delete', array(
+ $sql = self::$db->util->create_table('create_delete', array(
'id' => 'SMALLINT',
'key' => 'VARCHAR(64)',
'val' => 'BLOB SUB_TYPE TEXT'
));
- $this->db->query($sql);
+ self::$db->query($sql);
//Check
- $this->assertTrue(in_array('create_delete', $this->db->get_tables()));
+ $this->assertTrue(in_array('create_delete', self::$db->get_tables()));
}
// --------------------------------------------------------------------------
@@ -121,11 +124,11 @@ class FirebirdTest extends DBtest {
public function testDeleteTable()
{
//Attempt to delete the table
- $sql = $this->db->util->delete_table('create_delete');
- $this->db->query($sql);
+ $sql = self::$db->util->delete_table('create_delete');
+ self::$db->query($sql);
//Check
- $table_exists = in_array('create_delete', $this->db->get_tables());
+ $table_exists = in_array('create_delete', self::$db->get_tables());
$this->assertFalse($table_exists);
}
@@ -133,21 +136,21 @@ class FirebirdTest extends DBtest {
public function testTruncate()
{
- $this->db->truncate('create_test');
+ self::$db->truncate('create_test');
- $this->assertTrue($this->db->affected_rows() > 0);
+ $this->assertTrue(self::$db->affected_rows() > 0);
}
// --------------------------------------------------------------------------
public function testCommitTransaction()
{
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (10, 12, 14)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->commit();
+ $res = self::$db->commit();
$this->assertTrue($res);
}
@@ -155,12 +158,12 @@ class FirebirdTest extends DBtest {
public function testRollbackTransaction()
{
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (182, 96, 43)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->rollback();
+ $res = self::$db->rollback();
$this->assertTrue($res);
}
@@ -172,7 +175,7 @@ class FirebirdTest extends DBtest {
INSERT INTO "create_test" ("id", "key", "val")
VALUES (?,?,?)
SQL;
- $query = $this->db->prepare($sql);
+ $query = self::$db->prepare($sql);
$query->execute(array(1,"booger's", "Gross"));
}
@@ -185,7 +188,7 @@ SQL;
INSERT INTO "create_test" ("id", "key", "val")
VALUES (?,?,?)
SQL;
- $this->db->prepare_execute($sql, array(
+ self::$db->prepare_execute($sql, array(
2, "works", 'also?'
));
@@ -195,7 +198,7 @@ SQL;
public function testFetch()
{
- $res = $this->db->query('SELECT "key","val" FROM "create_test"');
+ $res = self::$db->query('SELECT "key","val" FROM "create_test"');
// Object
$fetchObj = $res->fetchObject();
@@ -206,7 +209,7 @@ SQL;
$this->assertTrue(array_key_exists('key', $fetchAssoc));
// Numeric array
- $res2 = $this->db->query('SELECT "id","key","val" FROM "create_test"');
+ $res2 = self::$db->query('SELECT "id","key","val" FROM "create_test"');
$fetch = $res2->fetch(PDO::FETCH_NUM);
$this->assertTrue(is_array($fetch));
}
@@ -215,14 +218,14 @@ SQL;
public function testPrepareQuery()
{
- $this->assertNull($this->db->prepare_query('', array()));
+ $this->assertNull(self::$db->prepare_query('', array()));
}
// --------------------------------------------------------------------------
public function testErrorInfo()
{
- $result = $this->db->errorInfo();
+ $result = self::$db->errorInfo();
$expected = array (
0 => 0,
@@ -237,7 +240,7 @@ SQL;
public function testErrorCode()
{
- $result = $this->db->errorCode();
+ $result = self::$db->errorCode();
$this->assertFalse($result);
}
@@ -245,7 +248,7 @@ SQL;
public function testDBList()
{
- $res = $this->db->sql->db_list();
+ $res = self::$db->get_sql()->db_list();
$this->assertNULL($res);
}
@@ -253,7 +256,7 @@ SQL;
public function testExec()
{
- $res = $this->db->exec('SELECT * FROM "create_test"');
+ $res = self::$db->exec('SELECT * FROM "create_test"');
$this->assertEquals(NULL, $res);
}
@@ -261,17 +264,17 @@ SQL;
public function testInTransaction()
{
- $this->db->beginTransaction();
- $this->assertTrue($this->db->inTransaction());
- $this->db->rollBack();
- $this->assertFalse($this->db->inTransaction());
+ self::$db->beginTransaction();
+ $this->assertTrue(self::$db->inTransaction());
+ self::$db->rollBack();
+ $this->assertFalse(self::$db->inTransaction());
}
// --------------------------------------------------------------------------
public function testGetAttribute()
{
- $res = $this->db->getAttribute("foo");
+ $res = self::$db->getAttribute("foo");
$this->assertEquals(NULL, $res);
}
@@ -279,11 +282,11 @@ SQL;
public function testSetAttribute()
{
- $this->assertFalse($this->db->setAttribute(47, 'foo'));
+ $this->assertFalse(self::$db->setAttribute(47, 'foo'));
}
public function testLastInsertId()
{
- $this->assertEqual(0, $this->db->lastInsertId('NEWTABLE_SEQ'));
+ $this->assertEqual(0, self::$db->lastInsertId('NEWTABLE_SEQ'));
}
}
\ No newline at end of file
diff --git a/tests/databases/mysql/MySQLTest.php b/tests/databases/mysql/MySQLTest.php
index 2e42946..ec119e2 100644
--- a/tests/databases/mysql/MySQLTest.php
+++ b/tests/databases/mysql/MySQLTest.php
@@ -21,7 +21,7 @@
*/
class MySQLTest extends DBTest {
- public function setUp()
+ public static function setUpBeforeClass()
{
// Attempt to connect, if there is a test config file
if (is_file(QTEST_DIR . "/settings.json"))
@@ -29,16 +29,16 @@ class MySQLTest extends DBTest {
$params = json_decode(file_get_contents(QTEST_DIR . "/settings.json"));
$params = $params->mysql;
- $this->db = new \Query\Drivers\Mysql\Driver("mysql:host={$params->host};dbname={$params->database}", $params->user, $params->pass, array(
+ self::$db = new \Query\Drivers\Mysql\Driver("mysql:host={$params->host};dbname={$params->database}", $params->user, $params->pass, array(
PDO::ATTR_PERSISTENT => TRUE
));
}
elseif (($var = getenv('CI')))
{
- $this->db = new \Query\Drivers\Mysql\Driver('host=127.0.0.1;port=3306;dbname=test', 'root');
+ self::$db = new \Query\Drivers\Mysql\Driver('host=127.0.0.1;port=3306;dbname=test', 'root');
}
- $this->db->table_prefix = 'create_';
+ self::$db->table_prefix = 'create_';
}
// --------------------------------------------------------------------------
@@ -52,17 +52,17 @@ class MySQLTest extends DBTest {
public function testConnection()
{
- $this->assertIsA($this->db, '\\Query\\Drivers\\Mysql\\Driver');
+ $this->assertIsA(self::$db, '\\Query\\Drivers\\Mysql\\Driver');
}
// --------------------------------------------------------------------------
public function testCreateTable()
{
- $this->db->exec(file_get_contents(QTEST_DIR.'/db_files/mysql.sql'));
+ self::$db->exec(file_get_contents(QTEST_DIR.'/db_files/mysql.sql'));
//Attempt to create the table
- $sql = $this->db->util->create_table('test',
+ $sql = self::$db->util->create_table('test',
array(
'id' => 'int(10)',
'key' => 'TEXT',
@@ -73,10 +73,10 @@ class MySQLTest extends DBTest {
)
);
- $this->db->query($sql);
+ self::$db->query($sql);
//Attempt to create the table
- $sql = $this->db->util->create_table('join',
+ $sql = self::$db->util->create_table('join',
array(
'id' => 'int(10)',
'key' => 'TEXT',
@@ -86,10 +86,10 @@ class MySQLTest extends DBTest {
'id' => 'PRIMARY KEY'
)
);
- $this->db->query($sql);
+ self::$db->query($sql);
//Check
- $dbs = $this->db->get_tables();
+ $dbs = self::$db->get_tables();
$this->assertTrue(in_array('create_test', $dbs));
@@ -99,8 +99,8 @@ class MySQLTest extends DBTest {
public function testTruncate()
{
- $this->db->truncate('test');
- $this->db->truncate('join');
+ self::$db->truncate('test');
+ self::$db->truncate('join');
}
// --------------------------------------------------------------------------
@@ -111,7 +111,7 @@ class MySQLTest extends DBTest {
INSERT INTO `create_test` (`id`, `key`, `val`)
VALUES (?,?,?)
SQL;
- $statement = $this->db->prepare_query($sql, array(1,"boogers", "Gross"));
+ $statement = self::$db->prepare_query($sql, array(1,"boogers", "Gross"));
$res = $statement->execute();
@@ -129,7 +129,7 @@ SQL;
SQL;
try
{
- $statement = $this->db->prepare_query($sql, 'foo');
+ $statement = self::$db->prepare_query($sql, 'foo');
}
catch(InvalidArgumentException $e)
{
@@ -146,7 +146,7 @@ SQL;
INSERT INTO `create_test` (`id`, `key`, `val`)
VALUES (?,?,?)
SQL;
- $res = $this->db->prepare_execute($sql, array(
+ $res = self::$db->prepare_execute($sql, array(
2, "works", 'also?'
));
@@ -158,12 +158,12 @@ SQL;
public function testCommitTransaction()
{
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO `create_test` (`id`, `key`, `val`) VALUES (10, 12, 14)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->commit();
+ $res = self::$db->commit();
$this->assertTrue($res);
}
@@ -171,12 +171,12 @@ SQL;
public function testRollbackTransaction()
{
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO `create_test` (`id`, `key`, `val`) VALUES (182, 96, 43)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->rollback();
+ $res = self::$db->rollback();
$this->assertTrue($res);
}
@@ -184,21 +184,21 @@ SQL;
public function testGetSchemas()
{
- $this->assertNull($this->db->get_schemas());
+ $this->assertNull(self::$db->get_schemas());
}
// --------------------------------------------------------------------------
public function testGetSequences()
{
- $this->assertNull($this->db->get_sequences());
+ $this->assertNull(self::$db->get_sequences());
}
// --------------------------------------------------------------------------
public function testBackup()
{
- $this->assertTrue(is_string($this->db->util->backup_structure()));
+ $this->assertTrue(is_string(self::$db->util->backup_structure()));
}
diff --git a/tests/databases/pgsql/PgSQLQBTest.php b/tests/databases/pgsql/PgSQLQBTest.php
index 9706abd..b1b40f3 100644
--- a/tests/databases/pgsql/PgSQLQBTest.php
+++ b/tests/databases/pgsql/PgSQLQBTest.php
@@ -20,7 +20,7 @@ class PgSQLQBTest extends QBTest {
public function setUp()
{
// If the database isn't installed, skip the tests
- if ( ! class_exists("Query\\Drivers\\Pgsql\\Driver") && ! IS_QUERCUS)
+ if ( ! in_array('pgsql', PDO::getAvailableDrivers()))
{
$this->markTestSkipped("Postgres extension for PDO not loaded");
}
@@ -65,7 +65,6 @@ class PgSQLQBTest extends QBTest {
{
$this->markTestSkipped();
return;
-
$query = $this->db->select('id, key as k, val')
->explain()
->where('id >', 1)
diff --git a/tests/databases/pgsql/PgSQLTest.php b/tests/databases/pgsql/PgSQLTest.php
index 0c2b972..f788759 100644
--- a/tests/databases/pgsql/PgSQLTest.php
+++ b/tests/databases/pgsql/PgSQLTest.php
@@ -30,20 +30,26 @@ class PgTest extends DBTest {
$this->markTestSkipped("Postgres extension for PDO not loaded");
}
+ }
+
+ public static function setUpBeforeClass()
+ {
+ $class = "Query\\Drivers\\Pgsql\\Driver";
+
// Attempt to connect, if there is a test config file
if (is_file(QTEST_DIR . "/settings.json"))
{
$params = json_decode(file_get_contents(QTEST_DIR . "/settings.json"));
$params = $params->pgsql;
- $this->db = new $class("pgsql:dbname={$params->database};port=5432", $params->user, $params->pass);
+ self::$db = new $class("pgsql:dbname={$params->database};port=5432", $params->user, $params->pass);
}
elseif (($var = getenv('CI')))
{
- $this->db = new $class('host=127.0.0.1;port=5432;dbname=test', 'postgres');
+ self::$db = new $class('host=127.0.0.1;port=5432;dbname=test', 'postgres');
}
- $this->db->table_prefix = 'create_';
+ self::$db->table_prefix = 'create_';
}
// --------------------------------------------------------------------------
@@ -51,7 +57,6 @@ class PgTest extends DBTest {
public function testExists()
{
$drivers = \PDO::getAvailableDrivers();
-print_r($drivers);
$this->assertTrue(in_array('pgsql', $drivers));
}
@@ -59,26 +64,26 @@ print_r($drivers);
public function testConnection()
{
- if (empty($this->db)) return;
+ if (empty(self::$db)) return;
- $this->assertIsA($this->db, '\\Query\\Drivers\\Pgsql\\Driver');
+ $this->assertIsA(self::$db, '\\Query\\Drivers\\Pgsql\\Driver');
}
// --------------------------------------------------------------------------
public function testCreateTable()
{
- $this->db->exec(file_get_contents(QTEST_DIR.'/db_files/pgsql.sql'));
+ self::$db->exec(file_get_contents(QTEST_DIR.'/db_files/pgsql.sql'));
// Drop the table(s) if they exist
$sql = 'DROP TABLE IF EXISTS "create_test"';
- $this->db->query($sql);
+ self::$db->query($sql);
$sql = 'DROP TABLE IF EXISTS "create_join"';
- $this->db->query($sql);
+ self::$db->query($sql);
//Attempt to create the table
- $sql = $this->db->util->create_table('create_test',
+ $sql = self::$db->util->create_table('create_test',
array(
'id' => 'integer',
'key' => 'TEXT',
@@ -89,10 +94,10 @@ print_r($drivers);
)
);
- $this->db->query($sql);
+ self::$db->query($sql);
//Attempt to create the table
- $sql = $this->db->util->create_table('create_join',
+ $sql = self::$db->util->create_table('create_join',
array(
'id' => 'integer',
'key' => 'TEXT',
@@ -102,16 +107,16 @@ print_r($drivers);
'id' => 'PRIMARY KEY'
)
);
- $this->db->query($sql);
+ self::$db->query($sql);
//echo $sql.'
';
//Reset
- unset($this->db);
- $this->setUp();
+ //unset(self::$db);
+ //$this->setUp();
//Check
- $dbs = $this->db->get_tables();
+ $dbs = self::$db->get_tables();
$this->assertTrue(in_array('create_test', $dbs));
}
@@ -120,11 +125,11 @@ print_r($drivers);
public function testTruncate()
{
- $this->db->truncate('create_test');
- $this->db->truncate('create_join');
+ self::$db->truncate('create_test');
+ self::$db->truncate('create_join');
- $ct_query = $this->db->query('SELECT * FROM create_test');
- $cj_query = $this->db->query('SELECT * FROM create_join');
+ $ct_query = self::$db->query('SELECT * FROM create_test');
+ $cj_query = self::$db->query('SELECT * FROM create_join');
}
// --------------------------------------------------------------------------
@@ -135,7 +140,7 @@ print_r($drivers);
INSERT INTO "create_test" ("id", "key", "val")
VALUES (?,?,?)
SQL;
- $statement = $this->db->prepare_query($sql, array(1,"boogers", "Gross"));
+ $statement = self::$db->prepare_query($sql, array(1,"boogers", "Gross"));
$statement->execute();
@@ -151,7 +156,7 @@ SQL;
SQL;
try
{
- $statement = $this->db->prepare_query($sql, 'foo');
+ $statement = self::$db->prepare_query($sql, 'foo');
}
catch(InvalidArgumentException $e)
{
@@ -164,13 +169,13 @@ SQL;
public function testPrepareExecute()
{
- if (empty($this->db)) return;
+ if (empty(self::$db)) return;
$sql = <<db->prepare_execute($sql, array(
+ self::$db->prepare_execute($sql, array(
2, "works", 'also?'
));
@@ -180,14 +185,14 @@ SQL;
public function testCommitTransaction()
{
- if (empty($this->db)) return;
+ if (empty(self::$db)) return;
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (10, 12, 14)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->commit();
+ $res = self::$db->commit();
$this->assertTrue($res);
}
@@ -195,14 +200,14 @@ SQL;
public function testRollbackTransaction()
{
- if (empty($this->db)) return;
+ if (empty(self::$db)) return;
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (182, 96, 43)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->rollback();
+ $res = self::$db->rollback();
$this->assertTrue($res);
}
@@ -210,20 +215,20 @@ SQL;
public function testGetSchemas()
{
- $this->assertTrue(is_array($this->db->get_schemas()));
+ $this->assertTrue(is_array(self::$db->get_schemas()));
}
// --------------------------------------------------------------------------
public function testGetDBs()
{
- $this->assertTrue(is_array($this->db->get_dbs()));
+ $this->assertTrue(is_array(self::$db->get_dbs()));
}
// --------------------------------------------------------------------------
public function testGetFunctions()
{
- $this->assertNull($this->db->get_functions());
+ $this->assertNull(self::$db->get_functions());
}
}
\ No newline at end of file
diff --git a/tests/databases/sqlite/SQLiteTest.php b/tests/databases/sqlite/SQLiteTest.php
index 3d93c3d..391c797 100644
--- a/tests/databases/sqlite/SQLiteTest.php
+++ b/tests/databases/sqlite/SQLiteTest.php
@@ -20,12 +20,23 @@
*/
class SQLiteTest extends DBTest {
- public function setUp()
+ public static function setupBeforeClass()
{
- // Set up in the bootstrap to mitigate
- // connection locking issues
- $this->db = Query('test_sqlite');
- $this->db->table_prefix = 'create_';
+ $path = QTEST_DIR.QDS.'db_files'.QDS.'test_sqlite.db';
+ $params = array(
+ 'type' => 'sqlite',
+ 'file' => ':memory:',
+ 'prefix' => 'create_',
+ 'alias' => 'test_sqlite',
+ 'options' => array(
+ PDO::ATTR_PERSISTENT => TRUE
+ )
+ );
+
+ Query($params);
+
+ self::$db = Query('test_sqlite');
+ self::$db->table_prefix = 'create_';
}
// --------------------------------------------------------------------------
@@ -34,10 +45,10 @@ class SQLiteTest extends DBTest {
public function testCreateTable()
{
- $this->db->exec(file_get_contents(QTEST_DIR.'/db_files/sqlite.sql'));
+ self::$db->exec(file_get_contents(QTEST_DIR.'/db_files/sqlite.sql'));
//Check
- $dbs = $this->db->get_tables();
+ $dbs = self::$db->get_tables();
$this->assertTrue(in_array('TEST1', $dbs));
$this->assertTrue(in_array('TEST2', $dbs));
@@ -52,7 +63,7 @@ class SQLiteTest extends DBTest {
/*public function testBackupData()
{
- $sql = mb_trim($this->db->util->backup_data(array('create_join', 'create_test')));
+ $sql = mb_trim(self::$db->util->backup_data(array('create_join', 'create_test')));
$sql_array = explode("\n", $sql);
@@ -71,7 +82,7 @@ SQL;
public function testBackupStructure()
{
- $sql = mb_trim($this->db->util->backup_structure());
+ $sql = mb_trim(self::$db->util->backup_structure());
$expected = <<db->util->delete_table('create_delete');
+ $sql = self::$db->util->delete_table('create_delete');
- $this->db->query($sql);
+ self::$db->query($sql);
//Check
- $dbs = $this->db->get_tables();
+ $dbs = self::$db->get_tables();
$this->assertFalse(in_array('create_delete', $dbs));
}
@@ -167,7 +178,7 @@ SQL;
$db = new $class(QTEST_DIR.QDS.'db_files'.QDS.'test_sqlite.db');
$this->assertIsA($db, $class);
- $this->assertIsA($this->db->db, $class);
+ $this->assertIsA(self::$db->db, $class);
unset($db);
}
@@ -176,7 +187,7 @@ SQL;
public function testTruncate()
{
- $this->db->truncate('create_test');
+ self::$db->truncate('create_test');
}
// --------------------------------------------------------------------------
@@ -187,7 +198,7 @@ SQL;
INSERT INTO "create_test" ("id", "key", "val")
VALUES (?,?,?)
SQL;
- $statement = $this->db->prepare_query($sql, array(1,"boogers", "Gross"));
+ $statement = self::$db->prepare_query($sql, array(1,"boogers", "Gross"));
$statement->execute();
@@ -201,7 +212,7 @@ SQL;
INSERT INTO "create_test" ("id", "key", "val")
VALUES (?,?,?)
SQL;
- $this->db->prepare_execute($sql, array(
+ self::$db->prepare_execute($sql, array(
2, "works", 'also?'
));
@@ -216,12 +227,12 @@ SQL;
$this->markTestSkipped("JDBC Driver doesn't support transactions");
}
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (10, 12, 14)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->commit();
+ $res = self::$db->commit();
$this->assertTrue($res);
}
@@ -234,12 +245,12 @@ SQL;
$this->markTestSkipped("JDBC Driver doesn't support transactions");
}
- $res = $this->db->beginTransaction();
+ $res = self::$db->beginTransaction();
$sql = 'INSERT INTO "create_test" ("id", "key", "val") VALUES (182, 96, 43)';
- $this->db->query($sql);
+ self::$db->query($sql);
- $res = $this->db->rollback();
+ $res = self::$db->rollback();
$this->assertTrue($res);
}
@@ -247,14 +258,14 @@ SQL;
public function testGetDBs()
{
- $this->assertTrue(is_array($this->db->get_dbs()));
+ $this->assertTrue(is_array(self::$db->get_dbs()));
}
// --------------------------------------------------------------------------
public function testGetSchemas()
{
- $this->assertNull($this->db->get_schemas());
+ $this->assertNull(self::$db->get_schemas());
}
// --------------------------------------------------------------------------
@@ -263,13 +274,13 @@ SQL;
public function testNullMethods()
{
- $sql = $this->db->sql->function_list();
+ $sql = self::$db->sql->function_list();
$this->assertEqual(NULL, $sql);
- $sql = $this->db->sql->procedure_list();
+ $sql = self::$db->sql->procedure_list();
$this->assertEqual(NULL, $sql);
- $sql = $this->db->sql->sequence_list();
+ $sql = self::$db->sql->sequence_list();
$this->assertEqual(NULL, $sql);
}
@@ -277,7 +288,7 @@ SQL;
public function testGetSystemTables()
{
- $sql = $this->db->get_system_tables();
+ $sql = self::$db->get_system_tables();
$this->assertTrue(is_array($sql));
}
@@ -285,20 +296,20 @@ SQL;
public function testGetSequences()
{
- $this->assertNull($this->db->get_sequences());
+ $this->assertNull(self::$db->get_sequences());
}
// --------------------------------------------------------------------------
public function testGetFunctions()
{
- $this->assertNull($this->db->get_functions());
+ $this->assertNull(self::$db->get_functions());
}
// --------------------------------------------------------------------------
public function testGetProcedures()
{
- $this->assertNull($this->db->get_procedures());
+ $this->assertNull(self::$db->get_procedures());
}
}
\ No newline at end of file
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
deleted file mode 100644
index 5720541..0000000
--- a/tests/phpunit.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
- ../coverage
- ../docs
- .
-
-
-
-
- core/core.php
- core/db_qp_test.php
-
-
- databases/firebird/FirebirdTest.php
- databases/firebird/FirebirdQBTest.php
-
-
- databases/mysql/MySQLTest.php
- databases/mysql/MySQLQBTest.php
-
-
- databases/pgsql/PgSQLTest.php
- databases/pgsql/PgSQLQBTest.php
-
-
- databases/sqlite/SQLiteTest.php
- databases/sqlite/SQLiteQBTest.php
-
-
-
\ No newline at end of file