diff options
Diffstat (limited to 'tests/dbal/migration')
| -rw-r--r-- | tests/dbal/migration/dummy.php | 27 | ||||
| -rw-r--r-- | tests/dbal/migration/fail.php | 41 | ||||
| -rw-r--r-- | tests/dbal/migration/if.php | 44 | ||||
| -rw-r--r-- | tests/dbal/migration/installed.php | 30 | ||||
| -rw-r--r-- | tests/dbal/migration/recall.php | 38 | ||||
| -rw-r--r-- | tests/dbal/migration/revert.php | 40 | ||||
| -rw-r--r-- | tests/dbal/migration/revert_with_dependency.php | 16 | ||||
| -rw-r--r-- | tests/dbal/migration/unfulfillable.php | 26 | 
8 files changed, 262 insertions, 0 deletions
| diff --git a/tests/dbal/migration/dummy.php b/tests/dbal/migration/dummy.php new file mode 100644 index 0000000000..0ac6e733a1 --- /dev/null +++ b/tests/dbal/migration/dummy.php @@ -0,0 +1,27 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_dummy extends phpbb_db_migration +{ +	static public function depends_on() +	{ +		return array('installed_migration'); +	} + +	function update_schema() +	{ +		return array( +			'add_columns' => array( +				'phpbb_config' => array( +					'extra_column' => array('UINT', 1), +				), +			), +		); +	} +} diff --git a/tests/dbal/migration/fail.php b/tests/dbal/migration/fail.php new file mode 100644 index 0000000000..f88d8169f5 --- /dev/null +++ b/tests/dbal/migration/fail.php @@ -0,0 +1,41 @@ +<?php +/** +* +* @package migration +* @copyright (c) 2012 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2 +* +*/ + +class phpbb_dbal_migration_fail extends phpbb_db_migration +{ +	function update_schema() +	{ +		return array( +			'add_columns' => array( +				$this->table_prefix . 'config' => array( +					'test_column' => array('BOOL', 1), +				), +			), +		); +	} + +	function revert_schema() +	{ +		return array( +			'drop_columns' => array( +				$this->table_prefix . 'config' => array( +					'test_column', +				), +			), +		); +	} + +	function update_data() +	{ +		return array( +			array('config.add', array('foobar3', true)), +			array('config.update', array('does_not_exist', true)), +		); +	} +} diff --git a/tests/dbal/migration/if.php b/tests/dbal/migration/if.php new file mode 100644 index 0000000000..83fe21bd21 --- /dev/null +++ b/tests/dbal/migration/if.php @@ -0,0 +1,44 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_if extends phpbb_db_migration +{ +	function update_schema() +	{ +		return array(); +	} + +	function update_data() +	{ +		return array( +			array('if', array( +				true, +				array('custom', array(array(&$this, 'test_true'))), +			)), +			array('if', array( +				false, +				array('custom', array(array(&$this, 'test_false'))), +			)), +		); +	} + +	function test_true() +	{ +		global $migrator_test_if_true_failed; + +		$migrator_test_if_true_failed = false; +	} + +	function test_false() +	{ +		global $migrator_test_if_false_failed; + +		$migrator_test_if_false_failed = true; +	} +} diff --git a/tests/dbal/migration/installed.php b/tests/dbal/migration/installed.php new file mode 100644 index 0000000000..01829f7a99 --- /dev/null +++ b/tests/dbal/migration/installed.php @@ -0,0 +1,30 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_installed extends phpbb_db_migration +{ +	function effectively_installed() +	{ +		return true; +	} + +	function update_data() +	{ +		return array( +			array('custom', array(array(&$this, 'test'))), +		); +	} + +	function test() +	{ +		global $migrator_test_installed_failed; + +		$migrator_test_installed_failed = true; +	} +} diff --git a/tests/dbal/migration/recall.php b/tests/dbal/migration/recall.php new file mode 100644 index 0000000000..6c2f04bf08 --- /dev/null +++ b/tests/dbal/migration/recall.php @@ -0,0 +1,38 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_recall extends phpbb_db_migration +{ +	function update_schema() +	{ +		return array(); +	} + +	function update_data() +	{ +		return array( +			array('custom', array(array(&$this, 'test_call'))), +		); +	} + +	// This function should be called 10 times +	function test_call($input) +	{ +		global $migrator_test_call_input; + +		$migrator_test_call_input = (int) $input; + +		if ($migrator_test_call_input < 10) +		{ +			return ($migrator_test_call_input + 1); +		} + +		return; +	} +} diff --git a/tests/dbal/migration/revert.php b/tests/dbal/migration/revert.php new file mode 100644 index 0000000000..ac01987cd4 --- /dev/null +++ b/tests/dbal/migration/revert.php @@ -0,0 +1,40 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_revert extends phpbb_db_migration +{ +	function update_schema() +	{ +		return array( +			'add_columns' => array( +				'phpbb_config' => array( +					'bar_column' => array('UINT', 1), +				), +			), +		); +	} + +	function revert_schema() +	{ +		return array( +			'drop_columns' => array( +				'phpbb_config' => array( +					'bar_column', +				), +			), +		); +	} + +	function update_data() +	{ +		return array( +			array('config.add', array('foobartest', 0)), +		); +	} +} diff --git a/tests/dbal/migration/revert_with_dependency.php b/tests/dbal/migration/revert_with_dependency.php new file mode 100644 index 0000000000..ca2c070e8c --- /dev/null +++ b/tests/dbal/migration/revert_with_dependency.php @@ -0,0 +1,16 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_revert_with_dependency extends phpbb_db_migration +{ +	static public function depends_on() +	{ +		return array('phpbb_dbal_migration_revert'); +	} +} diff --git a/tests/dbal/migration/unfulfillable.php b/tests/dbal/migration/unfulfillable.php new file mode 100644 index 0000000000..6d375e6880 --- /dev/null +++ b/tests/dbal/migration/unfulfillable.php @@ -0,0 +1,26 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +class phpbb_dbal_migration_unfulfillable extends phpbb_db_migration +{ +	static public function depends_on() +	{ +		return array('installed_migration', 'phpbb_dbal_migration_dummy', 'non_existant_migration'); +	} + +	function update_schema() +	{ +		trigger_error('Schema update of migration with unfulfillable dependency was run!'); +	} + +	function update_data() +	{ +		trigger_error('Data update of migration with unfulfillable dependency was run!'); +	} +} | 
