diff options
author | Maat <maat-pub@mageia.biz> | 2020-05-08 21:52:11 +0200 |
---|---|---|
committer | Maat <maat-pub@mageia.biz> | 2020-05-08 21:52:11 +0200 |
commit | 8ea437e30605e0f66b5220bf904a61d7c1d11ddd (patch) | |
tree | e0db2bb4a012d5b06a633160b19f62f4868ecd28 /tests/dbal/migrator_test.php | |
parent | 36bc1870f21fac04736a1049c1d5b8e127d729f4 (diff) | |
parent | 2fdd46b36431ae0f58bb2e78e42553168db9a0ff (diff) | |
download | forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.gz forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.bz2 forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.xz forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.zip |
Merge remote-tracking branch 'upstream/prep-release-3.2.9'
Diffstat (limited to 'tests/dbal/migrator_test.php')
-rw-r--r-- | tests/dbal/migrator_test.php | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php index 798200eef1..372b2dbe1e 100644 --- a/tests/dbal/migrator_test.php +++ b/tests/dbal/migrator_test.php @@ -11,23 +11,32 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; 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/revert.php'; require_once dirname(__FILE__) . '/migration/revert_with_dependency.php'; +require_once dirname(__FILE__) . '/migration/revert_table.php'; +require_once dirname(__FILE__) . '/migration/revert_table_with_dependency.php'; require_once dirname(__FILE__) . '/migration/fail.php'; require_once dirname(__FILE__) . '/migration/installed.php'; require_once dirname(__FILE__) . '/migration/schema.php'; class phpbb_dbal_migrator_test extends phpbb_database_test_case { + /** @var \phpbb\db\driver\driver_interface */ protected $db; + + /** @var \phpbb\db\tools\tools_interface */ protected $db_tools; + + /** @var \phpbb\db\migrator */ protected $migrator; + /** @var \phpbb\config\config */ + protected $config; + public function getDataSet() { return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/migrator.xml'); @@ -38,7 +47,8 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case parent::setUp(); $this->db = $this->new_dbal(); - $this->db_tools = new \phpbb\db\tools($this->db); + $factory = new \phpbb\db\tools\factory(); + $this->db_tools = $factory->get($this->db); $this->config = new \phpbb\config\db($this->db, new phpbb_mock_cache, 'phpbb_config'); @@ -62,14 +72,12 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case ); $container->set('migrator', $this->migrator); $container->set('dispatcher', new phpbb_mock_event_dispatcher()); - $user = new \phpbb\user('\phpbb\datetime'); $this->extension_manager = new \phpbb\extension\manager( $container, $this->db, $this->config, - new phpbb\filesystem(), - $user, + new phpbb\filesystem\filesystem(), 'phpbb_ext', dirname(__FILE__) . '/../../phpBB/', 'php', @@ -243,6 +251,41 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case $this->assertEquals(1, $migrator_test_revert_counter, 'Revert did call custom function again'); } + public function test_revert_table() + { + // Make sure there are no other migrations in the db, this could cause issues + $this->db->sql_query("DELETE FROM phpbb_migrations"); + $this->migrator->load_migration_state(); + + $this->migrator->set_migrations(array('phpbb_dbal_migration_revert_table', 'phpbb_dbal_migration_revert_table_with_dependency')); + + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table')); + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency')); + + // Install the migration first + while (!$this->migrator->finished()) + { + $this->migrator->update(); + } + + $this->assertTrue($this->migrator->migration_state('phpbb_dbal_migration_revert_table') !== false); + $this->assertTrue($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency') !== false); + + $this->assertTrue($this->db_tools->sql_column_exists('phpbb_foobar', 'baz_column')); + $this->assertFalse($this->db_tools->sql_column_exists('phpbb_foobar', 'bar_column')); + + // Revert migrations + while ($this->migrator->migration_state('phpbb_dbal_migration_revert_table') !== false) + { + $this->migrator->revert('phpbb_dbal_migration_revert_table'); + } + + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table')); + $this->assertFalse($this->migrator->migration_state('phpbb_dbal_migration_revert_table_with_dependency')); + + $this->assertFalse($this->db_tools->sql_table_exists('phpbb_foobar')); + } + public function test_fail() { $this->migrator->set_migrations(array('phpbb_dbal_migration_fail')); |