function NonPublicSchemaTest::testIndex

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::testIndex()

@covers ::addIndex
@covers ::indexExists
@covers ::dropIndex

File

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

Class

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

Namespace

Drupal\Tests\pgsql\Kernel\pgsql

Code

public function testIndex() : void {
  $this->testingFakeConnection
    ->schema()
    ->addIndex('faking_table', 'test_field', [
    'test_field',
  ], []);
  $this->assertTrue($this->testingFakeConnection
    ->schema()
    ->indexExists('faking_table', 'test_field'));
  $results = $this->testingFakeConnection
    ->query("SELECT * FROM pg_indexes WHERE indexname = :indexname", [
    ':indexname' => $this->testingFakeConnection
      ->getPrefix() . 'faking_table__test_field__idx',
  ])
    ->fetchAll();
  $this->assertCount(1, $results);
  $this->assertSame('testing_fake', $results[0]->schemaname);
  $this->assertSame($this->testingFakeConnection
    ->getPrefix() . 'faking_table', $results[0]->tablename);
  $this->assertStringContainsString('USING btree (test_field)', $results[0]->indexdef);
  $this->testingFakeConnection
    ->schema()
    ->dropIndex('faking_table', 'test_field');
  $this->assertFalse($this->testingFakeConnection
    ->schema()
    ->indexExists('faking_table', 'test_field'));
}

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