Skip to content
Browse files

Merge branch '1.3-misc-plugin-datasources' into 1.3-misc

  • Loading branch information...
2 parents ba7b2e9 + ed74653 commit ffad7a74a2afce12c4eb337424cc73b80d98be18 @jperras jperras committed
View
2 cake/libs/model/connection_manager.php
@@ -189,6 +189,8 @@ function loadDataSource($connName) {
trigger_error(sprintf($error, $conn['filename']), E_USER_ERROR);
return null;
}
+
+ return true;
}
/**
View
17 cake/tests/cases/libs/configure.test.php
@@ -409,21 +409,26 @@ function testClassLoading() {
$file = App::import('Model', 'Model', false);
$this->assertTrue($file);
+ $this->assertTrue(class_exists('Model'));
$file = App::import('Controller', 'Controller', false);
$this->assertTrue($file);
+ $this->assertTrue(class_exists('Controller'));
$file = App::import('Component', 'Component', false);
$this->assertTrue($file);
+ $this->assertTrue(class_exists('Component'));
$file = App::import('Shell', 'Shell', false);
$this->assertTrue($file);
+ $this->assertTrue(class_exists('Shell'));
$file = App::import('Model', 'SomeRandomModelThatDoesNotExist', false);
$this->assertFalse($file);
$file = App::import('Model', 'AppModel', false);
$this->assertTrue($file);
+ $this->assertTrue(class_exists('AppModel'));
$file = App::import('WrongType', null, true, array(), '');
$this->assertTrue($file);
@@ -456,6 +461,7 @@ function testClassLoading() {
$file = App::import('Controller', 'Pages');
$this->assertTrue($file);
+ $this->assertTrue(class_exists('PagesController'));
$classes = array_flip(get_declared_classes());
@@ -469,15 +475,22 @@ function testClassLoading() {
$file = App::import('Behavior', 'Containable');
$this->assertTrue($file);
+ $this->assertTrue(class_exists('ContainableBehavior'));
$file = App::import('Component', 'RequestHandler');
$this->assertTrue($file);
+ $this->assertTrue(class_exists('RequestHandlerComponent'));
$file = App::import('Helper', 'Form');
$this->assertTrue($file);
+ $this->assertTrue(class_exists('FormHelper'));
$file = App::import('Model', 'NonExistingModel');
$this->assertFalse($file);
+
+ $file = App::import('Datasource', 'DboSource');
+ $this->assertTrue($file);
+ $this->assertTrue(class_exists('DboSource'));
}
App::build(array(
@@ -493,6 +506,10 @@ function testClassLoading() {
$this->assertTrue($result);
$this->assertTrue(class_exists('OtherHelperHelper'));
+ $result = App::import('Datasource', 'TestPlugin.TestSource');
+ $this->assertTrue($result);
+ $this->assertTrue(class_exists('TestSource'));
+
App::build();
}
View
180 cake/tests/cases/libs/model/connection_manager.test.php
@@ -0,0 +1,180 @@
+<?php
+
+/**
+ * Connection Manager tests
+ *
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright 2005-2009, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
+ *
+ * Licensed under The Open Group Test Suite License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @filesource
+ * @copyright Copyright 2005-2009, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
+ * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests
+ * @package cake
+ * @subpackage cake.tests.cases.libs
+ * @since CakePHP(tm) v 1.2.0.5550
+ * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
+ */
+App::import('Core', 'ConnectionManager');
+
+/**
+ * ConnectionManagerTest
+ *
+ * @package cake
+ * @subpackage cake.tests.cases.models
+ */
+class ConnectionManagerTest extends CakeTestCase {
+
+/**
+ * setUp method
+ *
+ * @access public
+ * @return void
+ */
+ function setUp() {
+ $this->ConnectionManager = ConnectionManager::getInstance();
+ }
+
+/**
+ * tearDown method
+ *
+ * @access public
+ * @return void
+ */
+ function tearDown() {
+ unset($this->ConnectionManager);
+ }
+
+/**
+ * testInstantiation method
+ *
+ * @access public
+ * @return void
+ */
+ function testInstantiation() {
+ $this->assertTrue(is_a($this->ConnectionManager, 'ConnectionManager'));
+ }
+
+/**
+ * testEnumConnectionObjects method
+ *
+ * @access public
+ * @return void
+ */
+ function testEnumConnectionObjects() {
+ $sources = ConnectionManager::enumConnectionObjects();
+ $this->assertTrue(count($sources) >= 1);
+
+ $connections = array('default', 'test', 'test_suite');
+ $this->assertTrue(count(array_intersect(array_keys($sources), $connections)) >= 1);
+ }
+
+/**
+ * testGetDataSource method
+ *
+ * @access public
+ * @return void
+ */
+ function testGetDataSource() {
+ $connections = ConnectionManager::enumConnectionObjects();
+ $this->assertTrue(count(array_keys($connections) >= 1));
+
+ $source = ConnectionManager::getDataSource(key($connections));
+ $this->assertTrue(is_object($source));
+
+ }
+
+/**
+ * testSourceList method
+ *
+ * @access public
+ * @return void
+ */
+ function testSourceList() {
+ $sources = ConnectionManager::sourceList();
+ $this->assertTrue(count($sources) >= 1);
+
+ $connections = array('default', 'test', 'test_suite');
+ $this->assertTrue(count(array_intersect($sources, $connections)) >= 1);
+ }
+
+/**
+ * testGetSourceName method
+ *
+ * @access public
+ * @return void
+ */
+ function testGetSourceName() {
+ $connections = ConnectionManager::enumConnectionObjects();
+ $name = key($connections);
+ $source = ConnectionManager::getDataSource($name);
+ $result = ConnectionManager::getSourceName($source);
+
+ $this->assertEqual($result, $name);
+ }
+
+/**
+ * testLoadDataSource method
+ *
+ * @access public
+ * @return void
+ */
+ function testLoadDataSource() {
+ $connections = array(
+ array('classname' => 'DboMysql', 'filename' => 'dbo' . DS . 'dbo_mysql'),
+ array('classname' => 'DboMysqli', 'filename' => 'dbo' . DS . 'dbo_mysqli'),
+ array('classname' => 'DboMssql', 'filename' => 'dbo' . DS . 'dbo_mssql'),
+ array('classname' => 'DboOracle', 'filename' => 'dbo' . DS . 'dbo_oracle'),
+ );
+
+ foreach ($connections as $connection) {
+ $exists = class_exists($connection['classname']);
+ $loaded = ConnectionManager::loadDataSource($connection);
+ $this->assertEqual($loaded, !$exists, "%s Failed loading the {$connection['classname']} datasource");
+ }
+
+ $connection = array('classname' => 'NonExistentDataSource', 'filename' => 'non_existent');
+ $this->expectError(new PatternExpectation('/Unable to load DataSource file/i'));
+
+ $loaded = ConnectionManager::loadDataSource($connection);
+ $this->assertEqual($loaded, null);
+ }
+
+/**
+ * testCreateDataSource method
+ *
+ * @access public
+ * @return void
+ */
+ function testCreateDataSourceWithIntegrationTests() {
+ $name = 'test_created_connection';
+
+ $connections = ConnectionManager::enumConnectionObjects();
+ $this->assertTrue(count(array_keys($connections) >= 1));
+
+ $source = ConnectionManager::getDataSource(key($connections));
+ $this->assertTrue(is_object($source));
+
+ $config = $source->config;
+ $connection = ConnectionManager::create($name, $config);
+
+ $this->assertTrue(is_object($connection));
+ $this->assertEqual($name, $connection->configKeyName);
+ $this->assertEqual($name, ConnectionManager::getSourceName($connection));
+
+ $source = ConnectionManager::create(null, array());
+ $this->assertEqual($source, null);
+
+ $source = ConnectionManager::create('another_test', array());
+ $this->assertEqual($source, null);
+
+ $config = array('classname' => 'DboMysql', 'filename' => 'dbo' . DS . 'dbo_mysql');
+ $source = ConnectionManager::create(null, $config);
+ $this->assertEqual($source, null);
+ }
+}
+?>

0 comments on commit ffad7a7

Please sign in to comment.
Something went wrong with that request. Please try again.