diff options
-rw-r--r-- | tests/dbal/migration/dummy_order.php | 31 | ||||
-rw-r--r-- | tests/migrator/schema_generator_test.php | 17 |
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/dbal/migration/dummy_order.php b/tests/dbal/migration/dummy_order.php new file mode 100644 index 0000000000..011ac7c1e9 --- /dev/null +++ b/tests/dbal/migration/dummy_order.php @@ -0,0 +1,31 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2014 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +class phpbb_dbal_migration_dummy_order extends \phpbb\db\migration\migration +{ + function update_schema() + { + return array( + 'add_tables' => array( + $this->table_prefix . 'column_order_test' => array( + 'COLUMNS' => array( + 'foobar1' => array('BOOL', 0), + 'foobar3' => array('BOOL', 0), + ), + 'PRIMARY_KEY' => array('foobar1'), + ), + ), + 'add_columns' => array( + $this->table_prefix . 'column_order_test' => array( + 'foobar2' => array('BOOL', 0, 'after' => 'foobar1'), + ), + ), + ); + } +} diff --git a/tests/migrator/schema_generator_test.php b/tests/migrator/schema_generator_test.php index 4bac447229..4de6064895 100644 --- a/tests/migrator/schema_generator_test.php +++ b/tests/migrator/schema_generator_test.php @@ -7,6 +7,8 @@ * */ +require_once __DIR__ . '/../dbal/migration/dummy_order.php'; + class schmema_generator_test extends phpbb_test_case { public function setUp() @@ -46,4 +48,19 @@ class schmema_generator_test extends phpbb_test_case $this->assertArrayHasKey('phpbb_users', $this->generator->get_schema()); } + + public function test_check_column_position_success() + { + $this->get_schema_generator(array( + 'phpbb_dbal_migration_dummy_order', + )); + + $tables = $this->generator->get_schema(); + $columns = $tables[$this->table_prefix . 'column_order_test']['COLUMNS']; + + $offset1 = array_search('foobar1', array_keys($columns)); + $offset2 = array_search('foobar2', array_keys($columns)); + + $this->assertEquals($offset1 + 1, $offset2, 'The schema generator could not position the column correctly, using the "after" option in the migration script.'); + } } |