function SchemaTest::testIntrospectIndexSchema

@covers \Drupal\sqlite\Driver\Database\sqlite\Schema::introspectIndexSchema

File

core/modules/sqlite/tests/src/Kernel/sqlite/SchemaTest.php, line 52

Class

SchemaTest
Tests schema API for the SQLite driver.

Namespace

Drupal\Tests\sqlite\Kernel\sqlite

Code

public function testIntrospectIndexSchema() : void {
  $table_specification = [
    'fields' => [
      'id' => [
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'test_field_1' => [
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'test_field_2' => [
        'type' => 'int',
        'default' => 0,
      ],
      'test_field_3' => [
        'type' => 'int',
        'default' => 0,
      ],
      'test_field_4' => [
        'type' => 'int',
        'default' => 0,
      ],
      'test_field_5' => [
        'type' => 'int',
        'default' => 0,
      ],
    ],
    'primary key' => [
      'id',
      'test_field_1',
    ],
    'unique keys' => [
      'test_field_2' => [
        'test_field_2',
      ],
      'test_field_3_test_field_4' => [
        'test_field_3',
        'test_field_4',
      ],
    ],
    'indexes' => [
      'test_field_4' => [
        'test_field_4',
      ],
      'test_field_4_test_field_5' => [
        'test_field_4',
        'test_field_5',
      ],
    ],
  ];
  $table_name = strtolower($this->getRandomGenerator()
    ->name());
  $this->schema
    ->createTable($table_name, $table_specification);
  unset($table_specification['fields']);
  $introspect_index_schema = new \ReflectionMethod(get_class($this->schema), 'introspectIndexSchema');
  $index_schema = $introspect_index_schema->invoke($this->schema, $table_name);
  $this->assertEquals($table_specification, $index_schema);
}

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