mirror of
				https://github.com/brmlab/brmbiolab_sklad.git
				synced 2025-10-30 23:14:01 +01:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
						commit
						3b93da31de
					
				
					 1004 changed files with 265840 additions and 0 deletions
				
			
		
							
								
								
									
										345
									
								
								lib/Cake/Test/Case/Model/ConnectionManagerTest.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										345
									
								
								lib/Cake/Test/Case/Model/ConnectionManagerTest.php
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,345 @@ | |||
| <?php | ||||
| /** | ||||
|  * Connection Manager tests | ||||
|  * | ||||
|  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||||
|  * | ||||
|  * Licensed under The MIT License | ||||
|  * For full copyright and license information, please see the LICENSE.txt | ||||
|  * Redistributions of files must retain the above copyright notice | ||||
|  * | ||||
|  * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||||
|  * @link          http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests | ||||
|  * @package       Cake.Test.Case.Model | ||||
|  * @since         CakePHP(tm) v 1.2.0.5550 | ||||
|  * @license       http://www.opensource.org/licenses/mit-license.php MIT License | ||||
|  */ | ||||
| 
 | ||||
| App::uses('ConnectionManager', 'Model'); | ||||
| 
 | ||||
| /** | ||||
|  * ConnectionManagerTest | ||||
|  * | ||||
|  * @package       Cake.Test.Case.Model | ||||
|  */ | ||||
| class ConnectionManagerTest extends CakeTestCase { | ||||
| 
 | ||||
| /** | ||||
|  * tearDown method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function tearDown() { | ||||
| 		parent::tearDown(); | ||||
| 		CakePlugin::unload(); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testEnumConnectionObjects method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testEnumConnectionObjects() { | ||||
| 		$sources = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertTrue(count($sources) >= 1); | ||||
| 
 | ||||
| 		$connections = array('default', 'test', 'test'); | ||||
| 		$this->assertTrue(count(array_intersect(array_keys($sources), $connections)) >= 1); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetDataSource method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetDataSource() { | ||||
| 		App::build(array( | ||||
| 			'Model/Datasource' => array( | ||||
| 				CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS . 'Datasource' . DS | ||||
| 			) | ||||
| 		)); | ||||
| 
 | ||||
| 		$name = 'test_get_datasource'; | ||||
| 		$config = array('datasource' => 'Test2Source'); | ||||
| 
 | ||||
| 		ConnectionManager::create($name, $config); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertTrue((bool)(count(array_keys($connections) >= 1))); | ||||
| 
 | ||||
| 		$source = ConnectionManager::getDataSource('test_get_datasource'); | ||||
| 		$this->assertTrue(is_object($source)); | ||||
| 		ConnectionManager::drop('test_get_datasource'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetDataSourceException() method | ||||
|  * | ||||
|  * @return void | ||||
|  * @expectedException MissingDatasourceConfigException | ||||
|  */ | ||||
| 	public function testGetDataSourceException() { | ||||
| 		ConnectionManager::getDataSource('non_existent_source'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetPluginDataSource method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetPluginDataSource() { | ||||
| 		App::build(array( | ||||
| 			'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) | ||||
| 		), App::RESET); | ||||
| 		CakePlugin::load('TestPlugin'); | ||||
| 		$name = 'test_source'; | ||||
| 		$config = array('datasource' => 'TestPlugin.TestSource'); | ||||
| 		$connection = ConnectionManager::create($name, $config); | ||||
| 
 | ||||
| 		$this->assertTrue(class_exists('TestSource')); | ||||
| 		$this->assertEquals($connection->configKeyName, $name); | ||||
| 		$this->assertEquals($connection->config, $config); | ||||
| 
 | ||||
| 		ConnectionManager::drop($name); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetPluginDataSourceAndPluginDriver method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetPluginDataSourceAndPluginDriver() { | ||||
| 		App::build(array( | ||||
| 			'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) | ||||
| 		), App::RESET); | ||||
| 		CakePlugin::load('TestPlugin'); | ||||
| 		$name = 'test_plugin_source_and_driver'; | ||||
| 		$config = array('datasource' => 'TestPlugin.Database/TestDriver'); | ||||
| 
 | ||||
| 		$connection = ConnectionManager::create($name, $config); | ||||
| 
 | ||||
| 		$this->assertTrue(class_exists('TestSource')); | ||||
| 		$this->assertTrue(class_exists('TestDriver')); | ||||
| 		$this->assertEquals($connection->configKeyName, $name); | ||||
| 		$this->assertEquals($connection->config, $config); | ||||
| 
 | ||||
| 		ConnectionManager::drop($name); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetLocalDataSourceAndPluginDriver method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetLocalDataSourceAndPluginDriver() { | ||||
| 		App::build(array( | ||||
| 			'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) | ||||
| 		)); | ||||
| 		CakePlugin::load('TestPlugin'); | ||||
| 		$name = 'test_local_source_and_plugin_driver'; | ||||
| 		$config = array('datasource' => 'TestPlugin.Database/DboDummy'); | ||||
| 
 | ||||
| 		$connection = ConnectionManager::create($name, $config); | ||||
| 
 | ||||
| 		$this->assertTrue(class_exists('DboSource')); | ||||
| 		$this->assertTrue(class_exists('DboDummy')); | ||||
| 		$this->assertEquals($connection->configKeyName, $name); | ||||
| 
 | ||||
| 		ConnectionManager::drop($name); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetPluginDataSourceAndLocalDriver method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetPluginDataSourceAndLocalDriver() { | ||||
| 		App::build(array( | ||||
| 			'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS), | ||||
| 			'Model/Datasource/Database' => array( | ||||
| 				CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS . 'Datasource' . DS . 'Database' . DS | ||||
| 			) | ||||
| 		)); | ||||
| 
 | ||||
| 		$name = 'test_plugin_source_and_local_driver'; | ||||
| 		$config = array('datasource' => 'Database/TestLocalDriver'); | ||||
| 
 | ||||
| 		$connection = ConnectionManager::create($name, $config); | ||||
| 
 | ||||
| 		$this->assertTrue(class_exists('TestSource')); | ||||
| 		$this->assertTrue(class_exists('TestLocalDriver')); | ||||
| 		$this->assertEquals($connection->configKeyName, $name); | ||||
| 		$this->assertEquals($connection->config, $config); | ||||
| 		ConnectionManager::drop($name); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testSourceList method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testSourceList() { | ||||
| 		ConnectionManager::getDataSource('test'); | ||||
| 		$sources = ConnectionManager::sourceList(); | ||||
| 		$this->assertTrue(count($sources) >= 1); | ||||
| 		$this->assertTrue(in_array('test', array_keys($sources))); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testGetSourceName method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testGetSourceName() { | ||||
| 		$source = ConnectionManager::getDataSource('test'); | ||||
| 		$result = ConnectionManager::getSourceName($source); | ||||
| 
 | ||||
| 		$this->assertEquals('test', $result); | ||||
| 
 | ||||
| 		$source = new StdClass(); | ||||
| 		$result = ConnectionManager::getSourceName($source); | ||||
| 		$this->assertNull($result); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testLoadDataSource method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testLoadDataSource() { | ||||
| 		$connections = array( | ||||
| 			array('classname' => 'Mysql', 'filename' => 'Mysql', 'package' => 'Database'), | ||||
| 			array('classname' => 'Postgres', 'filename' => 'Postgres', 'package' => 'Database'), | ||||
| 			array('classname' => 'Sqlite', 'filename' => 'Sqlite', 'package' => 'Database'), | ||||
| 		); | ||||
| 
 | ||||
| 		foreach ($connections as $connection) { | ||||
| 			$exists = class_exists($connection['classname']); | ||||
| 			$loaded = ConnectionManager::loadDataSource($connection); | ||||
| 			$this->assertEquals($loaded, !$exists, "Failed loading the {$connection['classname']} datasource"); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testLoadDataSourceException() method | ||||
|  * | ||||
|  * @return void | ||||
|  * @expectedException MissingDatasourceException | ||||
|  */ | ||||
| 	public function testLoadDataSourceException() { | ||||
| 		$connection = array('classname' => 'NonExistentDataSource', 'filename' => 'non_existent'); | ||||
| 		ConnectionManager::loadDataSource($connection); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testCreateDataSource method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testCreateDataSourceWithIntegrationTests() { | ||||
| 		$name = 'test_created_connection'; | ||||
| 
 | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertTrue((bool)(count(array_keys($connections) >= 1))); | ||||
| 
 | ||||
| 		$source = ConnectionManager::getDataSource('test'); | ||||
| 		$this->assertTrue(is_object($source)); | ||||
| 
 | ||||
| 		$config = $source->config; | ||||
| 		$connection = ConnectionManager::create($name, $config); | ||||
| 
 | ||||
| 		$this->assertTrue(is_object($connection)); | ||||
| 		$this->assertEquals($name, $connection->configKeyName); | ||||
| 		$this->assertEquals($name, ConnectionManager::getSourceName($connection)); | ||||
| 
 | ||||
| 		$source = ConnectionManager::create(null, array()); | ||||
| 		$this->assertEquals(null, $source); | ||||
| 
 | ||||
| 		$source = ConnectionManager::create('another_test', array()); | ||||
| 		$this->assertEquals(null, $source); | ||||
| 
 | ||||
| 		$config = array('classname' => 'DboMysql', 'filename' => 'dbo' . DS . 'dbo_mysql'); | ||||
| 		$source = ConnectionManager::create(null, $config); | ||||
| 		$this->assertEquals(null, $source); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * testConnectionData method | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testConnectionData() { | ||||
| 		App::build(array( | ||||
| 			'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS), | ||||
| 			'Model/Datasource' => array( | ||||
| 				CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS . 'Datasource' . DS | ||||
| 			) | ||||
| 		), App::RESET); | ||||
| 		CakePlugin::load(array('TestPlugin', 'TestPluginTwo')); | ||||
| 		$expected = array( | ||||
| 			'datasource' => 'Test2Source' | ||||
| 		); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection1', array('datasource' => 'Test2Source')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals($expected, $connections['connection1']); | ||||
| 		ConnectionManager::drop('connection1'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection2', array('datasource' => 'Test2Source')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals($expected, $connections['connection2']); | ||||
| 		ConnectionManager::drop('connection2'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection3', array('datasource' => 'TestPlugin.TestSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$expected['datasource'] = 'TestPlugin.TestSource'; | ||||
| 		$this->assertEquals($expected, $connections['connection3']); | ||||
| 		ConnectionManager::drop('connection3'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection4', array('datasource' => 'TestPlugin.TestSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals($expected, $connections['connection4']); | ||||
| 		ConnectionManager::drop('connection4'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection5', array('datasource' => 'Test2OtherSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$expected['datasource'] = 'Test2OtherSource'; | ||||
| 		$this->assertEquals($expected, $connections['connection5']); | ||||
| 		ConnectionManager::drop('connection5'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection6', array('datasource' => 'Test2OtherSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals($expected, $connections['connection6']); | ||||
| 		ConnectionManager::drop('connection6'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection7', array('datasource' => 'TestPlugin.TestOtherSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$expected['datasource'] = 'TestPlugin.TestOtherSource'; | ||||
| 		$this->assertEquals($expected, $connections['connection7']); | ||||
| 		ConnectionManager::drop('connection7'); | ||||
| 
 | ||||
| 		ConnectionManager::create('connection8', array('datasource' => 'TestPlugin.TestOtherSource')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals($expected, $connections['connection8']); | ||||
| 		ConnectionManager::drop('connection8'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * Tests that a connection configuration can be deleted in runtime | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testDrop() { | ||||
| 		App::build(array( | ||||
| 			'Model/Datasource' => array( | ||||
| 				CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS . 'Datasource' . DS | ||||
| 			) | ||||
| 		)); | ||||
| 		ConnectionManager::create('droppable', array('datasource' => 'Test2Source')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertEquals(array('datasource' => 'Test2Source'), $connections['droppable']); | ||||
| 
 | ||||
| 		$this->assertTrue(ConnectionManager::drop('droppable')); | ||||
| 		$connections = ConnectionManager::enumConnectionObjects(); | ||||
| 		$this->assertFalse(isset($connections['droppable'])); | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 mareksebera
						mareksebera