function ConnectionUnitTest::testOpenSelectQueryClose

Same name in other branches
  1. 8.9.x core/tests/Drupal/KernelTests/Core/Database/ConnectionUnitTest.php \Drupal\KernelTests\Core\Database\ConnectionUnitTest::testOpenSelectQueryClose()

Tests Database::closeConnection() with a select query.

File

modules/simpletest/tests/database_test.test, line 4455

Class

ConnectionUnitTest
Tests management of database connections.

Code

function testOpenSelectQueryClose() {
    if ($this->skipTest) {
        return;
    }
    // Add and open a new connection.
    $this->addConnection();
    $id = $this->getConnectionID();
    Database::getConnection($this->target, $this->key);
    // Verify that there is a new connection.
    $this->assertConnection($id);
    // Create a table.
    $name = 'foo';
    Database::getConnection($this->target, $this->key)
        ->schema()
        ->createTable($name, array(
        'fields' => array(
            'name' => array(
                'type' => 'varchar',
                'length' => 255,
            ),
        ),
    ));
    // Execute a query.
    Database::getConnection($this->target, $this->key)
        ->select('foo', 'f')
        ->fields('f', array(
        'name',
    ))
        ->execute()
        ->fetchAll();
    // Drop the table.
    Database::getConnection($this->target, $this->key)
        ->schema()
        ->dropTable($name);
    // Close the connection.
    Database::closeConnection($this->target, $this->key);
    // 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.