diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-04-29 13:50:59 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-04-29 13:50:59 +0200 |
commit | ecef4cc91989005802e7432b985e3ed791097ef9 (patch) | |
tree | 102cf31f6b5d24f16b2a029906f1fceb67be035c /tests | |
parent | 3ce4f0a83939a26c74ec990ae66af6a03ea216d6 (diff) |
Add some unit tests for DB classes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Framework/DB.php | 56 | ||||
-rw-r--r-- | tests/Framework/DBMssql.php | 20 | ||||
-rw-r--r-- | tests/Framework/DBMysql.php | 20 | ||||
-rw-r--r-- | tests/Framework/DBPgsql.php | 20 | ||||
-rw-r--r-- | tests/Framework/DBSqlite.php | 20 | ||||
-rw-r--r-- | tests/Framework/DBSqlsrv.php | 20 | ||||
-rw-r--r-- | tests/phpunit.xml | 5 |
7 files changed, 160 insertions, 1 deletions
diff --git a/tests/Framework/DB.php b/tests/Framework/DB.php index b7a063841..42020f47a 100644 --- a/tests/Framework/DB.php +++ b/tests/Framework/DB.php @@ -9,7 +9,7 @@ class Framework_DB extends PHPUnit_Framework_TestCase { /** - * Class constructor + * Class constructor test */ function test_class() { @@ -17,4 +17,58 @@ class Framework_DB extends PHPUnit_Framework_TestCase $this->assertInstanceOf('rcube_db', $object, "Class constructor"); } + + /** + * Test script execution and table_prefix replacements + */ + function test_exec_script() + { + $db = new rcube_db_test_wrapper('test'); + $db->set_option('table_prefix', 'prefix_'); + + $script = implode("\n", array( + "CREATE TABLE `xxx` (test int, INDEX xxx (test));", + "-- test comment", + "ALTER TABLE `xxx` CHANGE test test int;", + "TRUNCATE xxx;", + "DROP TABLE `vvv`;", + "CREATE TABLE `i` (test int CONSTRAINT `iii` + FOREIGN KEY (`test`) REFERENCES `xxx`(`test`) ON DELETE CASCADE ON UPDATE CASCADE);", + "INSERT INTO xxx test = 1;", + "SELECT test FROM xxx;", + )); + $output = implode("\n", array( + "CREATE TABLE `prefix_xxx` (test int, INDEX prefix_xxx (test));", + "ALTER TABLE `prefix_xxx` CHANGE test test int;", + "TRUNCATE prefix_xxx;", + "DROP TABLE `prefix_vvv`;", + "CREATE TABLE `prefix_i` (test int CONSTRAINT `prefix_iii` + FOREIGN KEY (`test`) REFERENCES `prefix_xxx`(`test`) ON DELETE CASCADE ON UPDATE CASCADE);", + "INSERT INTO prefix_xxx test = 1;", + "SELECT test FROM prefix_xxx;", + )); + + $result = $db->exec_script($script); + $out = ''; + + foreach ($db->queries as $q) { + $out[] = $q[0]; + } + + $this->assertTrue($result, "Execute SQL script (result)"); + $this->assertSame(implode("\n", $out), $output, "Execute SQL script (content)"); + } +} + +/** + * rcube_db wrapper to test some protected methods + */ +class rcube_db_test_wrapper extends rcube_db +{ + public $queries = array(); + + protected function _query($query, $offset, $numrows, $params) + { + $this->queries[] = array(trim($query), $offset, $numrows, $params); + } } diff --git a/tests/Framework/DBMssql.php b/tests/Framework/DBMssql.php new file mode 100644 index 000000000..b88c95b28 --- /dev/null +++ b/tests/Framework/DBMssql.php @@ -0,0 +1,20 @@ +<?php + +/** + * Test class to test rcube_db_mssql class + * + * @package Tests + */ +class Framework_DBMssql extends PHPUnit_Framework_TestCase +{ + + /** + * Class constructor + */ + function test_class() + { + $object = new rcube_db_mssql('test'); + + $this->assertInstanceOf('rcube_db_mssql', $object, "Class constructor"); + } +} diff --git a/tests/Framework/DBMysql.php b/tests/Framework/DBMysql.php new file mode 100644 index 000000000..a3b8fda39 --- /dev/null +++ b/tests/Framework/DBMysql.php @@ -0,0 +1,20 @@ +<?php + +/** + * Test class to test rcube_db_mysql class + * + * @package Tests + */ +class Framework_DBMysql extends PHPUnit_Framework_TestCase +{ + + /** + * Class constructor + */ + function test_class() + { + $object = new rcube_db_mysql('test'); + + $this->assertInstanceOf('rcube_db_mysql', $object, "Class constructor"); + } +} diff --git a/tests/Framework/DBPgsql.php b/tests/Framework/DBPgsql.php new file mode 100644 index 000000000..67d1c4696 --- /dev/null +++ b/tests/Framework/DBPgsql.php @@ -0,0 +1,20 @@ +<?php + +/** + * Test class to test rcube_db_pgsql class + * + * @package Tests + */ +class Framework_DBPgsql extends PHPUnit_Framework_TestCase +{ + + /** + * Class constructor + */ + function test_class() + { + $object = new rcube_db_pgsql('test'); + + $this->assertInstanceOf('rcube_db_pgsql', $object, "Class constructor"); + } +} diff --git a/tests/Framework/DBSqlite.php b/tests/Framework/DBSqlite.php new file mode 100644 index 000000000..121bb7770 --- /dev/null +++ b/tests/Framework/DBSqlite.php @@ -0,0 +1,20 @@ +<?php + +/** + * Test class to test rcube_db_sqlite class + * + * @package Tests + */ +class Framework_DBSqlite extends PHPUnit_Framework_TestCase +{ + + /** + * Class constructor + */ + function test_class() + { + $object = new rcube_db_sqlite('test'); + + $this->assertInstanceOf('rcube_db_sqlite', $object, "Class constructor"); + } +} diff --git a/tests/Framework/DBSqlsrv.php b/tests/Framework/DBSqlsrv.php new file mode 100644 index 000000000..6272ef5d7 --- /dev/null +++ b/tests/Framework/DBSqlsrv.php @@ -0,0 +1,20 @@ +<?php + +/** + * Test class to test rcube_db_sqlsrv class + * + * @package Tests + */ +class Framework_DBSqlsrv extends PHPUnit_Framework_TestCase +{ + + /** + * Class constructor + */ + function test_class() + { + $object = new rcube_db_sqlsrv('test'); + + $this->assertInstanceOf('rcube_db_sqlsrv', $object, "Class constructor"); + } +} diff --git a/tests/phpunit.xml b/tests/phpunit.xml index c2874fd07..cee3434c1 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -13,6 +13,11 @@ <file>Framework/ContentFilter.php</file> <file>Framework/Csv2vcard.php</file> <file>Framework/DB.php</file> + <file>Framework/DBMssql.php</file> + <file>Framework/DBMysql.php</file> + <file>Framework/DBPgsql.php</file> + <file>Framework/DBSqlite.php</file> + <file>Framework/DBSqlsrv.php</file> <file>Framework/Enriched.php</file> <file>Framework/Html.php</file> <file>Framework/Html2text.php</file> |