You are here

function SchemaRegressionTest::testInspectionConflict518210 in Schema 8

Test API for adding tables

File

src/Tests/SchemaRegressionTest.php, line 30

Class

SchemaRegressionTest
Schema Regression Tests

Namespace

Drupal\schema\Tests

Code

function testInspectionConflict518210() {

  // Drop the test table and re-create it with different columns.
  $table = 'schema_test_1';
  db_drop_table($table);
  $schema = array(
    'fields' => array(
      'sourceid' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
      'destid' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
    ),
  );
  db_create_table($table, $schema);

  // Do the full inspection, and get our specified tablename
  $inspect = schema_dbobject()
    ->inspect();
  $fields = $inspect[$table]['fields'];

  // We should see only the columns from the prefixed version
  $this
    ->assertFalse(isset($fields['fid']), 'Column fid does not exist');
  $this
    ->assertTrue(isset($fields['sourceid']), 'Column sourceid exists.');
  $this
    ->assertTrue(isset($fields['destid']), 'Column destid exists.');

  // Inspect the table by using schema_compare().
  $schema = schema_get_schema('schema_test_1');
  $comparison = schema_compare_table($schema);
  $this
    ->assertEqual($comparison['status'], 'different', 'Table does not match its schema.');
}