function DriverSpecificSchemaTestBase::testInvalidPrimaryKeyChange

Same name and namespace in other branches
  1. 10 core/tests/Drupal/KernelTests/Core/Database/DriverSpecificSchemaTestBase.php \Drupal\KernelTests\Core\Database\DriverSpecificSchemaTestBase::testInvalidPrimaryKeyChange()

Tests changing the primary key with an invalid field specification.

File

core/tests/Drupal/KernelTests/Core/Database/DriverSpecificSchemaTestBase.php, line 771

Class

DriverSpecificSchemaTestBase
Tests table creation and modification via the schema API.

Namespace

Drupal\KernelTests\Core\Database

Code

public function testInvalidPrimaryKeyChange() : void {
    // Test adding a new invalid field to the primary key.
    $table_name = 'test_table';
    $table_spec = [
        'fields' => [
            'test_field' => [
                'type' => 'int',
                'not null' => TRUE,
            ],
        ],
        'primary key' => [
            'test_field',
        ],
    ];
    $this->schema
        ->createTable($table_name, $table_spec);
    $this->expectException(SchemaException::class);
    $this->expectExceptionMessage("The 'changed_test_field' field specification does not define 'not null' as TRUE.");
    $this->schema
        ->dropPrimaryKey($table_name);
    $this->schema
        ->changeField($table_name, 'test_field', 'changed_test_field', [
        'type' => 'int',
    ], [
        'primary key' => [
            'changed_test_field',
        ],
    ]);
}

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