1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-13 12:14:06 +02:00

[ticket/15274] Allow "custom" migrations to use parameters

Add the possibility to have custom migrations with parameters,
allowing the use of a single function for several uses.

PHPBB3-15274
This commit is contained in:
javiexin
2017-07-15 18:39:39 +02:00
parent 50d2e337b0
commit 563a6680eb
4 changed files with 137 additions and 1 deletions

View File

@@ -16,6 +16,8 @@ require_once dirname(__FILE__) . '/migration/dummy.php';
require_once dirname(__FILE__) . '/migration/unfulfillable.php';
require_once dirname(__FILE__) . '/migration/if.php';
require_once dirname(__FILE__) . '/migration/recall.php';
require_once dirname(__FILE__) . '/migration/if_params.php';
require_once dirname(__FILE__) . '/migration/recall_params.php';
require_once dirname(__FILE__) . '/migration/revert.php';
require_once dirname(__FILE__) . '/migration/revert_with_dependency.php';
require_once dirname(__FILE__) . '/migration/fail.php';
@@ -188,6 +190,54 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
$this->assertSame(10, $migrator_test_call_input);
}
public function test_if_params()
{
$this->migrator->set_migrations(array('phpbb_dbal_migration_if_params'));
// Don't like this, but I'm not sure there is any other way to do this
global $migrator_test_if_true_failed, $migrator_test_if_false_failed;
$migrator_test_if_true_failed = true;
$migrator_test_if_false_failed = false;
while (!$this->migrator->finished())
{
$this->migrator->update();
}
$this->assertFalse($migrator_test_if_true_failed, 'True test failed');
$this->assertFalse($migrator_test_if_false_failed, 'False test failed');
while ($this->migrator->migration_state('phpbb_dbal_migration_if_params') !== false)
{
$this->migrator->revert('phpbb_dbal_migration_if_params');
}
$this->assertFalse($migrator_test_if_true_failed, 'True test after revert failed');
$this->assertFalse($migrator_test_if_false_failed, 'False test after revert failed');
}
public function test_recall_params()
{
$this->migrator->set_migrations(array('phpbb_dbal_migration_recall_params'));
global $migrator_test_call_input;
// Run the schema first
$this->migrator->update();
$i = 0;
while (!$this->migrator->finished())
{
$this->migrator->update();
$this->assertSame($i, $migrator_test_call_input);
$i++;
}
$this->assertSame(5, $migrator_test_call_input);
}
public function test_revert()
{
global $migrator_test_revert_counter;