Skip to content

Commit

Permalink
Merge branch 'NanneHuiges-bugfix/dropconnection'
Browse files Browse the repository at this point in the history
  • Loading branch information
koenpunt committed Jun 3, 2017
2 parents 1031aae + 3226ef8 commit 5ec3bad
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 16 deletions.
5 changes: 5 additions & 0 deletions lib/ConnectionManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,15 @@ public static function get_connection($name=null)
* Drops the connection from the connection manager. Does not actually close it since there
* is no close method in PDO.
*
* If $name is null then the default connection will be returned.
*
* @param string $name Name of the connection to forget about
*/
public static function drop_connection($name=null)
{
$config = Config::instance();
$name = $name ? $name : $config->get_default_connection();

if (isset(self::$connections[$name]))
unset(self::$connections[$name]);
}
Expand Down
50 changes: 34 additions & 16 deletions test/ConnectionManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,48 @@ public function test_get_connection_with_null_connection()
$this->assert_not_null(ConnectionManager::get_connection(null));
$this->assert_not_null(ConnectionManager::get_connection());
}

public function test_get_connection()
{
$this->assert_not_null(ConnectionManager::get_connection('mysql'));
}

public function test_get_connection_uses_existing_object()
{
$a = ConnectionManager::get_connection('mysql');
$a->harro = 'harro there';
$connection = ConnectionManager::get_connection('mysql');
$this->assert_same($connection, ConnectionManager::get_connection('mysql'));
}

public function test_get_connection_with_default()
{
$default = ActiveRecord\Config::instance()->get_default_connection('mysql');
$connection = ConnectionManager::get_connection();
$this->assert_same(ConnectionManager::get_connection($default), $connection);
}

public function test_gh_91_get_connection_with_null_connection_is_always_default()
{
$conn_one = ConnectionManager::get_connection('mysql');
$conn_two = ConnectionManager::get_connection();
$conn_three = ConnectionManager::get_connection('mysql');
$conn_four = ConnectionManager::get_connection();

$this->assert_same($conn_one, $conn_three);
$this->assert_same($conn_two, $conn_three);
$this->assert_same($conn_four, $conn_three);
}

$this->assert_same($a,ConnectionManager::get_connection('mysql'));
public function test_drop_connection()
{
$connection = ConnectionManager::get_connection('mysql');
ConnectionManager::drop_connection('mysql');
$this->assert_not_same($connection, ConnectionManager::get_connection('mysql'));
}

public function test_gh_91_get_connection_with_null_connection_is_always_default()
{
$conn_one = ConnectionManager::get_connection('mysql');
$conn_two = ConnectionManager::get_connection();
$conn_three = ConnectionManager::get_connection('mysql');
$conn_four = ConnectionManager::get_connection();

$this->assert_same($conn_one, $conn_three);
$this->assert_same($conn_two, $conn_three);
$this->assert_same($conn_four, $conn_three);
}
public function test_drop_connection_with_default()
{
$connection = ConnectionManager::get_connection();
ConnectionManager::drop_connection();
$this->assert_not_same($connection, ConnectionManager::get_connection());
}
}
?>

0 comments on commit 5ec3bad

Please sign in to comment.