function ConnectionUnitTest::testOpenSelectQueryClose in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/src/Tests/Database/ConnectionUnitTest.php \Drupal\system\Tests\Database\ConnectionUnitTest::testOpenSelectQueryClose()
 
Tests Database::closeConnection() with a select query.
File
- core/
modules/ system/ src/ Tests/ Database/ ConnectionUnitTest.php, line 180  - Contains \Drupal\system\Tests\Database\ConnectionUnitTest.
 
Class
- ConnectionUnitTest
 - Tests management of database connections.
 
Namespace
Drupal\system\Tests\DatabaseCode
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);
}