1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-25 04:23:38 +01:00
php-phpbb/tests/migrator/get_schema_steps_test.php
Nathan Guse 344fde7f06 [ticket/12170] Test for 12170
PHPBB3-12170
2014-02-07 14:37:45 -06:00

201 lines
5.4 KiB
PHP

<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
class get_schema_steps_test extends phpbb_test_case
{
public function setUp()
{
parent::setUp();
$this->helper = new \phpbb\db\migration\helper();
}
public function schema_provider()
{
return array(
array(
array(
'add_tables' => array(
'foo' => array(
'COLUMNS' => array(
'foobar' => array('BOOL', 0),
'foobar2' => array('BOOL', 0),
),
'PRIMARY_KEY' => array('foobar'),
),
'bar' => array(
'COLUMNS' => array(
'barfoo' => array('BOOL', 0),
'barfoor2' => array('BOOL', 0),
),
'PRIMARY_KEY' => array('barfoo'),
),
),
'drop_tables' => array('table1', 'table2', 'table3'),
'add_index' => array(
'table1' => array(
'index1' => 'column1',
'index2' => 'column2',
),
'table2' => array(
'index1' => 'column1',
'index2' => 'column2',
),
),
'add_columns' => array(
'table1' => array(
'column1' => array('foo'),
'column2' => array('bar'),
),
),
'change_columns' => array(
'table1' => array(
'column1' => array('foo'),
'column2' => array('bar'),
),
),
'drop_columns' => array(
'table1' => array(
'column1',
'column2',
),
),
'add_unique_index' => array(
'table1' => array(
'index1' => 'column1',
'index2' => 'column2',
),
),
'drop_keys' => array(
'table1' => array(
'column1',
'column2',
),
),
'add_primary_keys' => array(
'table1' => array('foo'),
'table2' => array('bar'),
'table3' => array('foobar'),
),
),
array(
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table1')))),
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table2')))),
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table3')))),
array('dbtools.perform_schema_changes', array(array('add_tables' => array(
'foo' => array(
'COLUMNS' => array(
'foobar' => array('BOOL', 0),
'foobar2' => array('BOOL', 0),
),
'PRIMARY_KEY' => array('foobar'),
),
)))),
array('dbtools.perform_schema_changes', array(array('add_tables' => array(
'bar' => array(
'COLUMNS' => array(
'barfoo' => array('BOOL', 0),
'barfoor2' => array('BOOL', 0),
),
'PRIMARY_KEY' => array('barfoo'),
),
)))),
array('dbtools.perform_schema_changes', array(array('change_columns' => array(
'table1' => array(
'column1' => array('foo'),
),
)))),
array('dbtools.perform_schema_changes', array(array('change_columns' => array(
'table1' => array(
'column2' => array('bar'),
),
)))),
array('dbtools.perform_schema_changes', array(array('add_columns' => array(
'table1' => array(
'column1' => array('foo'),
),
)))),
array('dbtools.perform_schema_changes', array(array('add_columns' => array(
'table1' => array(
'column2' => array('bar'),
),
)))),
array('dbtools.perform_schema_changes', array(array('drop_keys' => array(
'table1' => array(
0 => 'column1',
),
)))),
array('dbtools.perform_schema_changes', array(array('drop_keys' => array(
'table1' => array(
1 => 'column2',
),
)))),
array('dbtools.perform_schema_changes', array(array('drop_columns' => array(
'table1' => array(
0 => 'column1',
),
)))),
array('dbtools.perform_schema_changes', array(array('drop_columns' => array(
'table1' => array(
1 => 'column2',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_primary_keys' => array(
'table1' => array('foo'),
)))),
array('dbtools.perform_schema_changes', array(array('add_primary_keys' => array(
'table2' => array('bar'),
)))),
array('dbtools.perform_schema_changes', array(array('add_primary_keys' => array(
'table3' => array('foobar'),
)))),
array('dbtools.perform_schema_changes', array(array('add_unique_index' => array(
'table1' => array(
'index1' => 'column1',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_unique_index' => array(
'table1' => array(
'index2' => 'column2',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_index' => array(
'table1' => array(
'index1' => 'column1',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_index' => array(
'table1' => array(
'index2' => 'column2',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_index' => array(
'table2' => array(
'index1' => 'column1',
),
)))),
array('dbtools.perform_schema_changes', array(array('add_index' => array(
'table2' => array(
'index2' => 'column2',
),
)))),
),
),
);
}
/**
* @dataProvider schema_provider
*/
public function test_get_schema_steps($schema_changes, $expected)
{
$this->assertEquals($expected, $this->helper->get_schema_steps($schema_changes));
}
}