aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-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);
}
}