You are here

function SchemaRegressionTest::testInspectionConflict518210 in Schema 7

Same name and namespace in other branches
  1. 6 tests/schema_regression.test \SchemaRegressionTest::testInspectionConflict518210()

Test API for adding tables

File

tests/schema_regression.test, line 24
Regression tests for the Schema module

Class

SchemaRegressionTest
@file Regression tests for the Schema module

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();
  $comparison = schema_compare_table($schema['schema_test_1']);
  $this
    ->assertEqual($comparison['status'], 'different', 'Table does not match its schema.');
}