Skip to content

Commit

Permalink
Improving ConnectionManager tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed May 27, 2011
1 parent 2c32d34 commit b320e43
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
4 changes: 2 additions & 2 deletions lib/Cake/Model/ConnectionManager.php
Expand Up @@ -113,7 +113,7 @@ public static function sourceList() {
if (empty(self::$_init)) {
self::init();
}
return array_keys(self::$_dataSources);
return array_keys((array)self::$config);
}

/**
Expand All @@ -132,7 +132,7 @@ public static function getSourceName($source) {
return $name;
}
}
return '';
return null;
}

/**
Expand Down
44 changes: 29 additions & 15 deletions lib/Cake/Test/Case/Model/ConnectionManagerTest.php
Expand Up @@ -55,11 +55,22 @@ function testEnumConnectionObjects() {
* @return void
*/
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');

$connection = ConnectionManager::create($name, $config);
$connections = ConnectionManager::enumConnectionObjects();
$this->assertTrue((bool)(count(array_keys($connections) >= 1)));

$source = ConnectionManager::getDataSource(key($connections));
$source = ConnectionManager::getDataSource('test_get_datasource');
$this->assertTrue(is_object($source));
ConnectionManager::drop('test_get_datasource');
}

/**
Expand Down Expand Up @@ -91,7 +102,7 @@ function testGetPluginDataSource() {
$this->assertEqual($connection->configKeyName, $name);
$this->assertEqual($connection->config, $config);

App::build();
ConnectionManager::drop($name);
}

/**
Expand All @@ -115,7 +126,7 @@ function testGetPluginDataSourceAndPluginDriver() {
$this->assertEqual($connection->configKeyName, $name);
$this->assertEqual($connection->config, $config);

App::build();
ConnectionManager::drop($name);
}

/**
Expand All @@ -138,7 +149,7 @@ function testGetLocalDataSourceAndPluginDriver() {
$this->assertTrue(class_exists('DboDummy'));
$this->assertEqual($connection->configKeyName, $name);

App::build();
ConnectionManager::drop($name);
}

/**
Expand All @@ -164,7 +175,7 @@ function testGetPluginDataSourceAndLocalDriver() {
$this->assertTrue(class_exists('TestLocalDriver'));
$this->assertEqual($connection->configKeyName, $name);
$this->assertEqual($connection->config, $config);
App::build();
ConnectionManager::drop($name);
}

/**
Expand All @@ -176,9 +187,7 @@ function testGetPluginDataSourceAndLocalDriver() {
function testSourceList() {
$sources = ConnectionManager::sourceList();
$this->assertTrue(count($sources) >= 1);

$connections = array('default', 'test', 'test');
$this->assertTrue(count(array_intersect($sources, $connections)) >= 1);
$this->assertTrue(in_array('test', array_keys($sources)));
}

/**
Expand All @@ -189,15 +198,14 @@ function testSourceList() {
*/
function testGetSourceName() {
$connections = ConnectionManager::enumConnectionObjects();
$name = key($connections);
$source = ConnectionManager::getDataSource($name);
$source = ConnectionManager::getDataSource('test');
$result = ConnectionManager::getSourceName($source);

$this->assertEqual($result, $name);
$this->assertEqual('test', $result);

$source = new StdClass();
$result = ConnectionManager::getSourceName($source);
$this->assertEqual($result, null);
$this->assertNull($result);
}

/**
Expand Down Expand Up @@ -243,7 +251,7 @@ function testCreateDataSourceWithIntegrationTests() {
$connections = ConnectionManager::enumConnectionObjects();
$this->assertTrue((bool)(count(array_keys($connections) >= 1)));

$source = ConnectionManager::getDataSource(key($connections));
$source = ConnectionManager::getDataSource('test');
$this->assertTrue(is_object($source));

$config = $source->config;
Expand Down Expand Up @@ -285,39 +293,45 @@ function testConnectionData() {
ConnectionManager::create('connection1', array('datasource' => 'Test2Source'));
$connections = ConnectionManager::enumConnectionObjects();
$this->assertEqual($expected, $connections['connection1']);
ConnectionManager::drop('connection1');

ConnectionManager::create('connection2', array('datasource' => 'Test2Source'));
$connections = ConnectionManager::enumConnectionObjects();
$this->assertEqual($expected, $connections['connection2']);
ConnectionManager::drop('connection2');

ConnectionManager::create('connection3', array('datasource' => 'TestPlugin.TestSource'));
$connections = ConnectionManager::enumConnectionObjects();
$expected['datasource'] = 'TestPlugin.TestSource';
$this->assertEqual($expected, $connections['connection3']);
ConnectionManager::drop('connection3');

ConnectionManager::create('connection4', array('datasource' => 'TestPlugin.TestSource'));
$connections = ConnectionManager::enumConnectionObjects();
$this->assertEqual($expected, $connections['connection4']);
ConnectionManager::drop('connection4');

ConnectionManager::create('connection5', array('datasource' => 'Test2OtherSource'));
$connections = ConnectionManager::enumConnectionObjects();
$expected['datasource'] = 'Test2OtherSource';

$this->assertEqual($expected, $connections['connection5']);
ConnectionManager::drop('connection5');

ConnectionManager::create('connection6', array('datasource' => 'Test2OtherSource'));
$connections = ConnectionManager::enumConnectionObjects();
$this->assertEqual($expected, $connections['connection6']);
ConnectionManager::drop('connection6');

ConnectionManager::create('connection7', array('datasource' => 'TestPlugin.TestOtherSource'));
$connections = ConnectionManager::enumConnectionObjects();
$expected['datasource'] = 'TestPlugin.TestOtherSource';

$this->assertEqual($expected, $connections['connection7']);
ConnectionManager::drop('connection7');

ConnectionManager::create('connection8', array('datasource' => 'TestPlugin.TestOtherSource'));
$connections = ConnectionManager::enumConnectionObjects();
$this->assertEqual($expected, $connections['connection8']);
ConnectionManager::drop('connection8');
}

/**
Expand Down
@@ -1,5 +1,5 @@
<?php

App::uses('DboSource', 'Model/Datasource');
class DboDummy extends DboSource {
function connect() {
return true;
Expand Down

0 comments on commit b320e43

Please sign in to comment.