mirror of
https://github.com/phpbb/phpbb.git
synced 2025-01-19 07:08:09 +01:00
a759704b39
PHPBB3-12594
205 lines
5.5 KiB
PHP
205 lines
5.5 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* This file is part of the phpBB Forum Software package.
|
|
*
|
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
|
*
|
|
* For full copyright and license information, please see
|
|
* the docs/CREDITS.txt file.
|
|
*
|
|
*/
|
|
|
|
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));
|
|
}
|
|
}
|