aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/dbal/sql_insert_buffer_test.php139
1 files changed, 95 insertions, 44 deletions
diff --git a/tests/dbal/sql_insert_buffer_test.php b/tests/dbal/sql_insert_buffer_test.php
index e3ee767937..bdf3544bbc 100644
--- a/tests/dbal/sql_insert_buffer_test.php
+++ b/tests/dbal/sql_insert_buffer_test.php
@@ -23,34 +23,38 @@ 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
+ $buffer->insert(array(
+ 'config_name' => 'name1',
+ 'config_value' => 'value1',
+ 'is_dynamic' => '0',
+ ));
+
+ $this->assert_config_count($db, 3);
+
+ // Manually flush
+ $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);
@@ -63,14 +67,7 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
'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();
@@ -78,13 +75,10 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
$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);
@@ -106,13 +100,39 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
$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(array(
+ 'config_name' => 'name1',
+ 'config_value' => 'value1',
+ 'is_dynamic' => '0',
+ ));
+
+ // This call flushes the values
+ $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);
@@ -136,14 +156,45 @@ class phpbb_dbal_sql_insert_buffer_test extends phpbb_database_test_case
),
));
- if ($db->multi_insert)
- {
- $this->assert_config_count($db, 4);
+ $this->assert_config_count($db, 5);
+ }
+
+ public function test_multi_insert_enabled_insert_all_and_flush()
+ {
+ $db = $this->new_dbal();
- // Manually flush
- $buffer->flush();
+ 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(
+ 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
+ $buffer->flush();
+
$this->assert_config_count($db, 5);
}
}