aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dbal/sql_insert_buffer_test.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2013-03-27 23:14:38 +0100
committerAndreas Fischer <bantu@phpbb.com>2013-03-27 23:14:38 +0100
commitedd4987030ff301e22d76ae8bf5073c3595a8b8c (patch)
treedef80394a9dbb042cd2e1aeff015d2b117a7b111 /tests/dbal/sql_insert_buffer_test.php
parent53f9e2131c9b87d35207ea585981fc9b084d0a11 (diff)
parentc9f059c4f2793e9f98c3e0fbaad06708dd557d31 (diff)
downloadforums-edd4987030ff301e22d76ae8bf5073c3595a8b8c.tar
forums-edd4987030ff301e22d76ae8bf5073c3595a8b8c.tar.gz
forums-edd4987030ff301e22d76ae8bf5073c3595a8b8c.tar.bz2
forums-edd4987030ff301e22d76ae8bf5073c3595a8b8c.tar.xz
forums-edd4987030ff301e22d76ae8bf5073c3595a8b8c.zip
Merge remote-tracking branch 'nickvergessen/ticket/bantu/11469-2' into ticket/11469
* nickvergessen/ticket/bantu/11469-2: [ticket/11469] Cast $result to boolean in insert_all() [ticket/11469] Check return values of the functions [ticket/11469] Split tests and skip multi_insert if unavailable
Diffstat (limited to 'tests/dbal/sql_insert_buffer_test.php')
-rw-r--r--tests/dbal/sql_insert_buffer_test.php157
1 files changed, 104 insertions, 53 deletions
diff --git a/tests/dbal/sql_insert_buffer_test.php b/tests/dbal/sql_insert_buffer_test.php
index e3ee767937..fd92ca9bba 100644
--- a/tests/dbal/sql_insert_buffer_test.php
+++ b/tests/dbal/sql_insert_buffer_test.php
@@ -23,102 +23,122 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
$db->sql_freeresult($result);
}
- public function insert_buffer_data()
+ public function test_multi_insert_disabled_insert_and_flush()
{
$db = $this->new_dbal();
+ $db->multi_insert = false;
- if ($db->multi_insert)
- {
- // Test with enabled and disabled multi_insert
- return array(
- array(true),
- array(false),
- );
- }
- else
- {
- // Only test with disabled multi_insert, the DB doesn't support it
- return array(
- array(false),
- );
- }
+ $buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
+
+ $this->assert_config_count($db, 2);
+
+ // This call can be buffered
+ $this->assertTrue($buffer->insert(array(
+ 'config_name' => 'name1',
+ 'config_value' => 'value1',
+ 'is_dynamic' => '0',
+ )));
+
+ $this->assert_config_count($db, 3);
+
+ // Manually flush
+ $this->assertFalse($buffer->flush());
+
+ $this->assert_config_count($db, 3);
}
- /**
- * @dataProvider insert_buffer_data
- */
- public function test_insert_and_flush($force_multi_insert)
+ public function test_multi_insert_enabled_insert_and_flush()
{
$db = $this->new_dbal();
- $db->multi_insert = $force_multi_insert;
+
+ if (!$db->multi_insert)
+ {
+ $this->markTestSkipped('Database does not support multi_insert');
+ }
$buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
$this->assert_config_count($db, 2);
// This call can be buffered
- $buffer->insert(array(
+ $this->assertFalse($buffer->insert(array(
'config_name' => 'name1',
'config_value' => 'value1',
'is_dynamic' => '0',
- ));
+ )));
- if ($db->multi_insert)
- {
- $this->assert_config_count($db, 2);
- }
- else
- {
- $this->assert_config_count($db, 3);
- }
+ $this->assert_config_count($db, 2);
// Manually flush
- $buffer->flush();
+ $this->assertTrue($buffer->flush());
$this->assert_config_count($db, 3);
}
- /**
- * @dataProvider insert_buffer_data
- */
- public function test_insert_with_flush($force_multi_insert)
+ public function test_multi_insert_disabled_insert_with_flush()
{
$db = $this->new_dbal();
- $db->multi_insert = $force_multi_insert;
+ $db->multi_insert = false;
$buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
$this->assert_config_count($db, 2);
- $buffer->insert(array(
+ $this->assertTrue($buffer->insert(array(
'config_name' => 'name1',
'config_value' => 'value1',
'is_dynamic' => '0',
- ));
+ )));
// This call flushes the values
- $buffer->insert(array(
+ $this->assertTrue($buffer->insert(array(
'config_name' => 'name2',
'config_value' => 'value2',
'is_dynamic' => '0',
- ));
+ )));
$this->assert_config_count($db, 4);
}
- /**
- * @dataProvider insert_buffer_data
- */
- public function test_insert_all_and_flush($force_multi_insert)
+ public function test_multi_insert_enabled_insert_with_flush()
{
$db = $this->new_dbal();
- $db->multi_insert = $force_multi_insert;
+
+ if (!$db->multi_insert)
+ {
+ $this->markTestSkipped('Database does not support multi_insert');
+ }
$buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
$this->assert_config_count($db, 2);
- $buffer->insert_all(array(
+ $this->assertFalse($buffer->insert(array(
+ 'config_name' => 'name1',
+ 'config_value' => 'value1',
+ 'is_dynamic' => '0',
+ )));
+
+ // This call flushes the values
+ $this->assertTrue($buffer->insert(array(
+ 'config_name' => 'name2',
+ 'config_value' => 'value2',
+ 'is_dynamic' => '0',
+ )));
+
+ $this->assert_config_count($db, 4);
+ }
+
+ public function test_multi_insert_disabled_insert_all_and_flush()
+ {
+ $db = $this->new_dbal();
+ $db->multi_insert = false;
+
+ $buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
+
+ $this->assert_config_count($db, 2);
+
+ $this->assertTrue($buffer->insert_all(array(
array(
'config_name' => 'name1',
'config_value' => 'value1',
@@ -134,16 +154,47 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
'config_value' => 'value3',
'is_dynamic' => '0',
),
- ));
+ )));
- if ($db->multi_insert)
- {
- $this->assert_config_count($db, 4);
+ $this->assert_config_count($db, 5);
+ }
- // Manually flush
- $buffer->flush();
+ public function test_multi_insert_enabled_insert_all_and_flush()
+ {
+ $db = $this->new_dbal();
+
+ if (!$db->multi_insert)
+ {
+ $this->markTestSkipped('Database does not support multi_insert');
}
+ $buffer = new phpbb_db_sql_insert_buffer($db, 'phpbb_config', 2);
+
+ $this->assert_config_count($db, 2);
+
+ $this->assertTrue($buffer->insert_all(array(
+ array(
+ 'config_name' => 'name1',
+ 'config_value' => 'value1',
+ 'is_dynamic' => '0',
+ ),
+ array(
+ 'config_name' => 'name2',
+ 'config_value' => 'value2',
+ 'is_dynamic' => '0',
+ ),
+ array(
+ 'config_name' => 'name3',
+ 'config_value' => 'value3',
+ 'is_dynamic' => '0',
+ ),
+ )));
+
+ $this->assert_config_count($db, 4);
+
+ // Manually flush
+ $this->assertTrue($buffer->flush());
+
$this->assert_config_count($db, 5);
}
}