diff options
| author | PayBas <contact@paybas.com> | 2014-05-27 00:41:11 +0200 | 
|---|---|---|
| committer | PayBas <contact@paybas.com> | 2014-05-27 00:41:11 +0200 | 
| commit | 9f37d414be1cc13377b9af1777220577c7af645c (patch) | |
| tree | 302aef20ef635e79aae1ef957a0719fd66cd1e04 /tests | |
| parent | 3cabe5fd792fced4120de02cfef66900b49516c4 (diff) | |
| download | forums-9f37d414be1cc13377b9af1777220577c7af645c.tar forums-9f37d414be1cc13377b9af1777220577c7af645c.tar.gz forums-9f37d414be1cc13377b9af1777220577c7af645c.tar.bz2 forums-9f37d414be1cc13377b9af1777220577c7af645c.tar.xz forums-9f37d414be1cc13377b9af1777220577c7af645c.zip  | |
[ticket/12561] Reworked tests by nickvergessen
PHPBB3-12561
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/dbal/migration/dummy_order.php | 50 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_0.php | 22 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_1.php | 22 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_2.php | 22 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_3.php | 22 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_4.php | 22 | ||||
| -rw-r--r-- | tests/dbal/migration/dummy_order_5.php | 23 | ||||
| -rw-r--r-- | tests/migrator/schema_generator_test.php | 135 | 
8 files changed, 206 insertions, 112 deletions
diff --git a/tests/dbal/migration/dummy_order.php b/tests/dbal/migration/dummy_order.php index af047eb416..b8590f5074 100644 --- a/tests/dbal/migration/dummy_order.php +++ b/tests/dbal/migration/dummy_order.php @@ -21,56 +21,6 @@ class phpbb_dbal_migration_dummy_order extends \phpbb\db\migration\migration  					'PRIMARY_KEY'		=> array('foobar1'),  				),  			), -			'add_columns'	=> array( -				$this->table_prefix . 'column_order_test1'	=> array( -					'foobar2'	=> array('BOOL', 0, 'after' => 'foobar1'), -				), -			), - -			'add_tables'	=> array( -				$this->table_prefix . 'column_order_test2'	=> array( -					'COLUMNS'			=> array( -						'foobar1'			=> array('BOOL', 0), -						'foobar3'			=> array('BOOL', 0), -					), -					'PRIMARY_KEY'		=> array('foobar1'), -				), -			), -			'add_columns'	=> array( -				$this->table_prefix . 'column_order_test2'	=> array( -					'foobar4'	=> array('BOOL', 0, 'after' => 'foobar3'), -				), -			), - -			'add_tables'	=> array( -				$this->table_prefix . 'column_order_test3'	=> array( -					'COLUMNS'			=> array( -						'foobar1'			=> array('BOOL', 0), -						'foobar3'			=> array('BOOL', 0), -					), -					'PRIMARY_KEY'		=> array('foobar1'), -				), -			), -			'add_columns'	=> array( -				$this->table_prefix . 'column_order_test3'	=> array( -					'foobar5'	=> array('BOOL', 0, 'after' => 'non-existing'), -				), -			), - -			'add_tables'	=> array( -				$this->table_prefix . 'column_order_test4'	=> array( -					'COLUMNS'			=> array( -						'foobar1'			=> array('BOOL', 0), -						'foobar3'			=> array('BOOL', 0), -					), -					'PRIMARY_KEY'		=> array('foobar1'), -				), -			), -			'add_columns'	=> array( -				$this->table_prefix . 'column_order_test4'	=> array( -					'foobar5'	=> array('BOOL', 0, 'after' => ''), -				), -			),  		);  	}  } diff --git a/tests/dbal/migration/dummy_order_0.php b/tests/dbal/migration/dummy_order_0.php new file mode 100644 index 0000000000..e45bb0ad44 --- /dev/null +++ b/tests/dbal/migration/dummy_order_0.php @@ -0,0 +1,22 @@ +<?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_0 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar2'	=> array('BOOL', 0, 'after' => 'foobar1'), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/dummy_order_1.php b/tests/dbal/migration/dummy_order_1.php new file mode 100644 index 0000000000..73f043af5d --- /dev/null +++ b/tests/dbal/migration/dummy_order_1.php @@ -0,0 +1,22 @@ +<?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_1 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar4'	=> array('BOOL', 0, 'after' => 'foobar3'), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/dummy_order_2.php b/tests/dbal/migration/dummy_order_2.php new file mode 100644 index 0000000000..1483b98050 --- /dev/null +++ b/tests/dbal/migration/dummy_order_2.php @@ -0,0 +1,22 @@ +<?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_2 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar5'	=> array('BOOL', 0, 'after' => 'non-existing'), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/dummy_order_3.php b/tests/dbal/migration/dummy_order_3.php new file mode 100644 index 0000000000..79c542e088 --- /dev/null +++ b/tests/dbal/migration/dummy_order_3.php @@ -0,0 +1,22 @@ +<?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_3 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar6'	=> array('BOOL', 0, 'after' => ''), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/dummy_order_4.php b/tests/dbal/migration/dummy_order_4.php new file mode 100644 index 0000000000..229a120ecf --- /dev/null +++ b/tests/dbal/migration/dummy_order_4.php @@ -0,0 +1,22 @@ +<?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_4 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar7'	=> array('BOOL', 0), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/dummy_order_5.php b/tests/dbal/migration/dummy_order_5.php new file mode 100644 index 0000000000..04d755009d --- /dev/null +++ b/tests/dbal/migration/dummy_order_5.php @@ -0,0 +1,23 @@ +<?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_5 extends \phpbb\db\migration\migration +{ +	function update_schema() +	{ +		return array( +			'add_columns'	=> array( +				$this->table_prefix . 'column_order_test1'	=> array( +					'foobar8'	=> array('BOOL', 0, 'after' => 'foobar3'), +					'foobar9'	=> array('BOOL', 0, 'after' => 'foobar3'), +				), +			), +		); +	} +} diff --git a/tests/migrator/schema_generator_test.php b/tests/migrator/schema_generator_test.php index c87c4cb904..14b423f276 100644 --- a/tests/migrator/schema_generator_test.php +++ b/tests/migrator/schema_generator_test.php @@ -8,9 +8,18 @@  */  require_once __DIR__ . '/../dbal/migration/dummy_order.php'; - -class schmema_generator_test extends phpbb_test_case +require_once __DIR__ . '/../dbal/migration/dummy_order_0.php'; +require_once __DIR__ . '/../dbal/migration/dummy_order_1.php'; +require_once __DIR__ . '/../dbal/migration/dummy_order_2.php'; +require_once __DIR__ . '/../dbal/migration/dummy_order_3.php'; +require_once __DIR__ . '/../dbal/migration/dummy_order_4.php'; +require_once __DIR__ . '/../dbal/migration/dummy_order_5.php'; + +class schema_generator_test extends phpbb_test_case  { +	/** @var \phpbb\db\migration\schema_generator */ +	protected $generator; +  	public function setUp()  	{  		parent::setUp(); @@ -49,75 +58,77 @@ class schmema_generator_test extends phpbb_test_case  		$this->assertArrayHasKey('phpbb_users', $this->generator->get_schema());  	} -	protected $expected_results_between = array( -		'foobar1' => array('BOOL', 0), -		'foobar2' => array('BOOL', 0), -		'foobar3' => array('BOOL', 0), -	); - -	public function test_check_column_position_between_success() +	public function column_add_after_data()  	{ -		$this->get_schema_generator(array( -			'phpbb_dbal_migration_dummy_order', -		)); - -		$tables = $this->generator->get_schema(); -		$columns = $tables[$this->table_prefix . 'column_order_test1']['COLUMNS']; - -		$this->assertEquals($columns, $expected_results_between, 'The schema generator could not position the column correctly between column 1 and 3, using the "after" option in the migration script.'); +		return array( +			array( +				'phpbb_dbal_migration_dummy_order_0', +				array( +					'foobar1', +					'foobar2', +					'foobar3', +				), +			), +			array( +				'phpbb_dbal_migration_dummy_order_1', +				array( +					'foobar1', +					'foobar3', +					'foobar4', +				), +			), +			array( +				'phpbb_dbal_migration_dummy_order_2', +				array( +					'foobar1', +					'foobar3', +					'foobar5', +				), +			), +			array( +				'phpbb_dbal_migration_dummy_order_3', +				array( +					'foobar1', +					'foobar3', +					'foobar6', +				), +			), +			array( +				'phpbb_dbal_migration_dummy_order_4', +				array( +					'foobar1', +					'foobar3', +					'foobar7', +				), +			), +			array( +				'phpbb_dbal_migration_dummy_order_5', +				array( +					'foobar1', +					'foobar3', +					'foobar9', +					'foobar8', +				), +			), +		);  	} -	protected $expected_results_after_last = array( -		'foobar1' => array('BOOL', 0), -		'foobar3' => array('BOOL', 0), -		'foobar4' => array('BOOL', 0), -	); - -	public function test_check_column_position_after_last_success() -	{ -		$this->get_schema_generator(array( -			'phpbb_dbal_migration_dummy_order', -		)); - -		$tables = $this->generator->get_schema(); -		$columns = $tables[$this->table_prefix . 'column_order_test2']['COLUMNS']; - -		$this->assertEquals($columns, $expected_results_after_last, 'The schema generator could not position the column correctly after the last column, using the "after" option in the migration script.'); -	} - -	protected $expected_results_after_missing = array( -		'foobar1' => array('BOOL', 0), -		'foobar3' => array('BOOL', 0), -		'foobar5' => array('BOOL', 0), -	); - -	public function test_check_column_position_after_missing_success() -	{ -		$this->get_schema_generator(array( -			'phpbb_dbal_migration_dummy_order', -		)); - -		$tables = $this->generator->get_schema(); -		$columns = $tables[$this->table_prefix . 'column_order_test3']['COLUMNS']; - -		$this->assertEquals($columns, $expected_results_after_missing, 'The schema generator could not position the column after a "missing" column value, using the "after" option in the migration script.'); -	} - -	protected $expected_results_after_empty = array( -		'foobar1' => array('BOOL', 0), -		'foobar3' => array('BOOL', 0), -		'foobar5' => array('BOOL', 0), -	); - -	public function test_check_column_position_after_empty_success() +	/** +	* @dataProvider column_add_after_data +	*/ +	public function test_column_add_after($migration, $expected)  	{  		$this->get_schema_generator(array(  			'phpbb_dbal_migration_dummy_order', +			$migration,  		));  		$tables = $this->generator->get_schema(); -		$columns = $tables[$this->table_prefix . 'column_order_test4']['COLUMNS']; -		$this->assertEquals($columns, $expected_results_after_empty, 'The schema generator could not position the column after an "empty" column value, using the "after" option in the migration script.'); +		$this->assertEquals( +			$expected, +			array_keys($tables[$this->table_prefix . 'column_order_test1']['COLUMNS']), +			'The schema generator could not position the column correctly, using the "after" option in the migration script.' +		);  	}  }  | 
