function NonPublicSchemaTest::testTable

Same name and namespace in other branches
  1. 11.x core/modules/pgsql/tests/src/Kernel/pgsql/NonPublicSchemaTest.php \Drupal\Tests\pgsql\Kernel\pgsql\NonPublicSchemaTest::testTable()

@covers ::renameTable
@covers ::tableExists
@covers ::findTables
@covers ::dropTable

File

core/modules/pgsql/tests/src/Kernel/pgsql/NonPublicSchemaTest.php, line 346

Class

NonPublicSchemaTest
Tests schema API for non-public schema for the PostgreSQL driver.

Namespace

Drupal\Tests\pgsql\Kernel\pgsql

Code

public function testTable() : void {
  $this->testingFakeConnection
    ->schema()
    ->renameTable('faking_table', 'new_faking_table');
  $tables = $this->testingFakeConnection
    ->schema()
    ->findTables('%');
  $result = $this->testingFakeConnection
    ->query("SELECT * FROM information_schema.tables WHERE table_schema = 'testing_fake'")
    ->fetchAll();
  $this->assertFalse($this->testingFakeConnection
    ->schema()
    ->tableExists('faking_table'));
  $this->assertTrue($this->testingFakeConnection
    ->schema()
    ->tableExists('new_faking_table'));
  $this->assertEquals($this->testingFakeConnection
    ->getPrefix() . 'new_faking_table', $result[0]->table_name);
  $this->assertEquals('testing_fake', $result[0]->table_schema);
  sort($tables);
  $this->assertEquals([
    'new_faking_table',
  ], $tables);
  $this->testingFakeConnection
    ->schema()
    ->dropTable('new_faking_table');
  $this->assertFalse($this->testingFakeConnection
    ->schema()
    ->tableExists('new_faking_table'));
  $this->assertCount(0, $this->testingFakeConnection
    ->query("SELECT * FROM information_schema.tables WHERE table_schema = 'testing_fake'")
    ->fetchAll());
}

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