function PostgresqlSchemaTest::testComputedConstraintName

Tests whether the actual constraint name is correctly computed.

@covers ::constraintExists
@dataProvider providerComputedConstraintName

Parameters

string $table_name: The table name the constrained column belongs to.

string $name: The constraint name.

string $expected: The expected computed constraint name.

File

core/tests/Drupal/Tests/Core/Database/Driver/pgsql/PostgresqlSchemaTest.php, line 45

Class

PostgresqlSchemaTest
@coversDefaultClass \Drupal\Core\Database\Driver\pgsql\Schema[[api-linebreak]] @group Database

Namespace

Drupal\Tests\Core\Database\Driver\pgsql

Code

public function testComputedConstraintName($table_name, $name, $expected) {
  $max_identifier_length = 63;
  $schema = new Schema($this->connection);
  $statement = $this->createMock('\\Drupal\\Core\\Database\\StatementInterface');
  $statement->expects($this->any())
    ->method('fetchField')
    ->willReturn($max_identifier_length);
  $this->connection
    ->expects($this->any())
    ->method('query')
    ->willReturn($statement);
  $this->connection
    ->expects($this->at(2))
    ->method('query')
    ->with("SELECT 1 FROM pg_constraint WHERE conname = '{$expected}'")
    ->willReturn($this->createMock('\\Drupal\\Core\\Database\\StatementInterface'));
  $schema->constraintExists($table_name, $name);
}

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