function ConnectionUnitTest::testOpenClose

Same name and namespace in other branches
  1. 7.x modules/simpletest/tests/database_test.test \ConnectionUnitTest::testOpenClose()

Tests Database::closeConnection() without query.

@todo getConnectionId() executes a query.

File

core/tests/Drupal/KernelTests/Core/Database/ConnectionUnitTest.php, line 100

Class

ConnectionUnitTest
Tests management of database connections.

Namespace

Drupal\KernelTests\Core\Database

Code

public function testOpenClose() {
    // Only run this test for the 'mysql' driver.
    $driver = $this->connection
        ->driver();
    if ($driver !== 'mysql') {
        $this->markTestSkipped("MySql tests can not run for driver '{$driver}'.");
    }
    // Add and open a new connection.
    $this->addConnection();
    $id = $this->getConnectionId();
    Database::getConnection(static::TEST_TARGET_CONNECTION);
    // Verify that there is a new connection.
    $this->assertConnection($id);
    // Close the connection.
    Database::closeConnection(static::TEST_TARGET_CONNECTION);
    // Wait 20ms to give the database engine sufficient time to react.
    usleep(20000);
    // Verify that we are back to the original connection count.
    $this->assertNoConnection($id);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.