aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dbal
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2010-10-25 19:20:51 +0200
committerNils Adermann <naderman@naderman.de>2010-10-25 19:43:39 +0200
commitfa8dca2400f1bef5e3faa43e491a5e2c15eafe11 (patch)
tree915487e33eb06061473b15a1bffa0e13ae5a4df3 /tests/dbal
parent9b4da986536e0bce0359d300df84fb03e265ef53 (diff)
downloadforums-fa8dca2400f1bef5e3faa43e491a5e2c15eafe11.tar
forums-fa8dca2400f1bef5e3faa43e491a5e2c15eafe11.tar.gz
forums-fa8dca2400f1bef5e3faa43e491a5e2c15eafe11.tar.bz2
forums-fa8dca2400f1bef5e3faa43e491a5e2c15eafe11.tar.xz
forums-fa8dca2400f1bef5e3faa43e491a5e2c15eafe11.zip
[task/mssql-db-tests] Split up database tests into SELECT and write operations
SELECT is based on the user table fixture, write (INSERT/UPDATE/DELETE) is tested using the config table fixture. PHPBB3-9868
Diffstat (limited to 'tests/dbal')
-rw-r--r--tests/dbal/all_tests.php6
-rw-r--r--tests/dbal/fixtures/config.xml18
-rw-r--r--tests/dbal/select.php (renamed from tests/dbal/dbal.php)172
-rw-r--r--tests/dbal/write.php172
4 files changed, 195 insertions, 173 deletions
diff --git a/tests/dbal/all_tests.php b/tests/dbal/all_tests.php
index 7aee0f6b16..cfa8176246 100644
--- a/tests/dbal/all_tests.php
+++ b/tests/dbal/all_tests.php
@@ -15,7 +15,8 @@ if (!defined('PHPUnit_MAIN_METHOD'))
require_once 'test_framework/framework.php';
require_once 'PHPUnit/TextUI/TestRunner.php';
-require_once 'dbal/dbal.php';
+require_once 'dbal/select.php';
+require_once 'dbal/write.php';
class phpbb_dbal_all_tests
{
@@ -28,7 +29,8 @@ class phpbb_dbal_all_tests
{
$suite = new PHPUnit_Framework_TestSuite('phpBB Database Abstraction Layer');
- $suite->addTestSuite('phpbb_dbal_test');
+ $suite->addTestSuite('phpbb_dbal_select_test');
+ $suite->addTestSuite('phpbb_dbal_write_test');
return $suite;
}
diff --git a/tests/dbal/fixtures/config.xml b/tests/dbal/fixtures/config.xml
new file mode 100644
index 0000000000..019f582a91
--- /dev/null
+++ b/tests/dbal/fixtures/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<dataset>
+ <table name="phpbb_config">
+ <column>config_name</column>
+ <column>config_value</column>
+ <column>is_dynamic</column>
+ <row>
+ <value>config1</value>
+ <value>foo</value>
+ <value>0</value>
+ </row>
+ <row>
+ <value>config2</value>
+ <value>bar</value>
+ <value>1</value>
+ </row>
+ </table>
+</dataset>
diff --git a/tests/dbal/dbal.php b/tests/dbal/select.php
index 663323ad61..70f27549d2 100644
--- a/tests/dbal/dbal.php
+++ b/tests/dbal/select.php
@@ -10,7 +10,7 @@
require_once 'test_framework/framework.php';
require_once '../phpBB/includes/functions.php';
-class phpbb_dbal_test extends phpbb_database_test_case
+class phpbb_dbal_select_test extends phpbb_database_test_case
{
public function getDataSet()
{
@@ -318,174 +318,4 @@ class phpbb_dbal_test extends phpbb_database_test_case
$db->sql_freeresult($result);
}
-
- public static function build_array_insert_data()
- {
- return array(
- array(array(
- 'config_name' => 'test_version',
- 'config_value' => '0.0.0',
- 'is_dynamic' => 1,
- )),
- array(array(
- 'config_name' => 'second config',
- 'config_value' => '10',
- 'is_dynamic' => 0,
- )),
- );
- }
-
- /**
- * @dataProvider build_array_insert_data
- */
- public function test_build_array_insert($sql_ary)
- {
- $db = $this->new_dbal();
-
- $sql = 'INSERT INTO phpbb_config ' . $db->sql_build_array('INSERT', $sql_ary);
- $result = $db->sql_query($sql);
-
- $sql = "SELECT *
- FROM phpbb_config
- WHERE config_name = '" . $sql_ary['config_name'] . "'";
- $result = $db->sql_query_limit($sql, 1);
-
- $this->assertEquals($sql_ary, $db->sql_fetchrow($result));
-
- $db->sql_freeresult($result);
- }
-
- public static function delete_data()
- {
- return array(
- array(
- "WHERE config_name = 'test_version'",
- array(
- array(
- 'config_name' => 'second config',
- 'config_value' => '10',
- 'is_dynamic' => 0,
- ),
- ),
- ),
- array(
- '',
- array(),
- ),
- );
- }
-
- /**
- * @dataProvider delete_data
- */
- public function test_delete($where, $expected)
- {
- $db = $this->new_dbal();
-
- $sql = 'DELETE FROM phpbb_config
- ' . $where;
- $result = $db->sql_query($sql);
-
- $sql = 'SELECT *
- FROM phpbb_config';
- $result = $db->sql_query($sql);
-
- $this->assertEquals($expected, $db->sql_fetchrowset($result));
-
- $db->sql_freeresult($result);
- }
-
- public function test_multiple_insert()
- {
- $db = $this->new_dbal();
-
- $batch_ary = array(
- array(
- 'config_name' => 'batch one',
- 'config_value' => 'b1',
- 'is_dynamic' => 0,
- ),
- array(
- 'config_name' => 'batch two',
- 'config_value' => 'b2',
- 'is_dynamic' => 1,
- ),
- );
-
- $result = $db->sql_multi_insert('phpbb_config', $batch_ary);
-
- $sql = 'SELECT *
- FROM phpbb_config
- ORDER BY config_name ASC';
- $result = $db->sql_query($sql);
-
- $this->assertEquals($batch_ary, $db->sql_fetchrowset($result));
-
- $db->sql_freeresult($result);
- }
-
- public static function update_data()
- {
- return array(
- array(
- array(
- 'config_value' => '20',
- 'is_dynamic' => 0,
- ),
- " WHERE config_name = 'batch one'",
- array(
- array(
- 'config_name' => 'batch one',
- 'config_value' => '20',
- 'is_dynamic' => 0,
- ),
- array(
- 'config_name' => 'batch two',
- 'config_value' => 'b2',
- 'is_dynamic' => 1,
- ),
- ),
- ),
- array(
- array(
- 'config_value' => '0',
- 'is_dynamic' => 1,
- ),
- '',
- array(
- array(
- 'config_name' => 'batch one',
- 'config_value' => '0',
- 'is_dynamic' => 1,
- ),
- array(
- 'config_name' => 'batch two',
- 'config_value' => '0',
- 'is_dynamic' => 1,
- ),
- ),
- ),
- );
- }
-
- /**
- * @dataProvider update_data
- */
- public function test_update($sql_ary, $where, $expected)
- {
- $db = $this->new_dbal();
-
- $sql = 'UPDATE phpbb_config
- SET ' . $db->sql_build_array('UPDATE', $sql_ary) . $where;
- $result = $db->sql_query($sql);
-
- $sql = 'SELECT *
- FROM phpbb_config
- ORDER BY config_name ASC';
- $result = $db->sql_query($sql);
-
- $this->assertEquals($expected, $db->sql_fetchrowset($result));
-
- $db->sql_freeresult($result);
- }
}
diff --git a/tests/dbal/write.php b/tests/dbal/write.php
new file mode 100644
index 0000000000..01deacda69
--- /dev/null
+++ b/tests/dbal/write.php
@@ -0,0 +1,172 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2008 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once 'test_framework/framework.php';
+require_once '../phpBB/includes/functions.php';
+
+class phpbb_dbal_write_test extends phpbb_database_test_case
+{
+ public function getDataSet()
+ {
+ return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/config.xml');
+ }
+
+ public static function build_array_insert_data()
+ {
+ return array(
+ array(array(
+ 'config_name' => 'test_version',
+ 'config_value' => '0.0.0',
+ 'is_dynamic' => 1,
+ )),
+ array(array(
+ 'config_name' => 'second config',
+ 'config_value' => '10',
+ 'is_dynamic' => 0,
+ )),
+ );
+ }
+
+ /**
+ * @dataProvider build_array_insert_data
+ */
+ public function test_build_array_insert($sql_ary)
+ {
+ $db = $this->new_dbal();
+
+ $sql = 'INSERT INTO phpbb_config ' . $db->sql_build_array('INSERT', $sql_ary);
+ $result = $db->sql_query($sql);
+
+ $sql = "SELECT *
+ FROM phpbb_config
+ WHERE config_name = '" . $sql_ary['config_name'] . "'";
+ $result = $db->sql_query_limit($sql, 1);
+
+ $this->assertEquals($sql_ary, $db->sql_fetchrow($result));
+
+ $db->sql_freeresult($result);
+ }
+
+ public function test_delete()
+ {
+ $db = $this->new_dbal();
+
+ $sql = "DELETE FROM phpbb_config
+ WHERE config_name = 'config1'";
+ $result = $db->sql_query($sql);
+
+ $sql = 'SELECT *
+ FROM phpbb_config';
+ $result = $db->sql_query($sql);
+ $rows = $db->sql_fetchrowset($result);
+
+ $this->assertEquals(1, sizeof($rows));
+ $this->assertEquals('config2', $rows[0]['config_name']);
+
+ $db->sql_freeresult($result);
+ }
+
+ public function test_multiple_insert()
+ {
+ $db = $this->new_dbal();
+
+ // empty the table
+ $sql = 'DELETE FROM phpbb_config';
+ $db->sql_query($sql);
+
+ $batch_ary = array(
+ array(
+ 'config_name' => 'batch one',
+ 'config_value' => 'b1',
+ 'is_dynamic' => 0,
+ ),
+ array(
+ 'config_name' => 'batch two',
+ 'config_value' => 'b2',
+ 'is_dynamic' => 1,
+ ),
+ );
+
+ $result = $db->sql_multi_insert('phpbb_config', $batch_ary);
+
+ $sql = 'SELECT *
+ FROM phpbb_config
+ ORDER BY config_name ASC';
+ $result = $db->sql_query($sql);
+
+ $this->assertEquals($batch_ary, $db->sql_fetchrowset($result));
+
+ $db->sql_freeresult($result);
+ }
+
+ public static function update_data()
+ {
+ return array(
+ array(
+ array(
+ 'config_value' => '23',
+ 'is_dynamic' => 0,
+ ),
+ " WHERE config_name = 'config1'",
+ array(
+ array(
+ 'config_name' => 'config1',
+ 'config_value' => '23',
+ 'is_dynamic' => 0,
+ ),
+ array(
+ 'config_name' => 'config2',
+ 'config_value' => 'bar',
+ 'is_dynamic' => 1,
+ ),
+ ),
+ ),
+ array(
+ array(
+ 'config_value' => '0',
+ 'is_dynamic' => 1,
+ ),
+ '',
+ array(
+ array(
+ 'config_name' => 'config1',
+ 'config_value' => '0',
+ 'is_dynamic' => 1,
+ ),
+ array(
+ 'config_name' => 'config2',
+ 'config_value' => '0',
+ 'is_dynamic' => 1,
+ ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider update_data
+ */
+ public function test_update($sql_ary, $where, $expected)
+ {
+ $db = $this->new_dbal();
+
+ $sql = 'UPDATE phpbb_config
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . $where;
+ $result = $db->sql_query($sql);
+
+ $sql = 'SELECT *
+ FROM phpbb_config
+ ORDER BY config_name ASC';
+ $result = $db->sql_query($sql);
+
+ $this->assertEquals($expected, $db->sql_fetchrowset($result));
+
+ $db->sql_freeresult($result);
+ }
+}