database_test_schema

7 database_test.install database_test_schema()
8 database_test.install database_test_schema()

Implements hook_schema().

The database tests use the database API which depends on schema information for certain operations on certain databases. Therefore, the schema must actually be declared in a normal module like any other, not directly in the test file.

File

modules/simpletest/tests/database_test.install, line 16
Install, update and uninstall functions for the database_test module.

Code

function database_test_schema() {
  $schema['test'] = array(
    'description' => 'Basic test table for the database unit tests.', 
    'fields' => array(
      'id' => array(
        'type' => 'serial', 
        'unsigned' => TRUE, 
        'not null' => TRUE,
      ), 
      'name' => array(
        'description' => "A person's name", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => TRUE, 
        'default' => '', 
        'binary' => TRUE,
      ), 
      'age' => array(
        'description' => "The person's age", 
        'type' => 'int', 
        'unsigned' => TRUE, 
        'not null' => TRUE, 
        'default' => 0,
      ), 
      'job' => array(
        'description' => "The person's job", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => TRUE, 
        'default' => 'Undefined',
      ),
    ), 
    'primary key' => array('id'), 
    'unique keys' => array(
      'name' => array('name'),
    ), 
    'indexes' => array(
      'ages' => array('age'),
    ),
  );

  // This is an alternate version of the same table that is structured the same
  // but has a non-serial Primary Key.
  $schema['test_people'] = array(
    'description' => 'A duplicate version of the test table, used for additional tests.', 
    'fields' => array(
      'name' => array(
        'description' => "A person's name", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => TRUE, 
        'default' => '',
      ), 
      'age' => array(
        'description' => "The person's age", 
        'type' => 'int', 
        'unsigned' => TRUE, 
        'not null' => TRUE, 
        'default' => 0,
      ), 
      'job' => array(
        'description' => "The person's job", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => TRUE, 
        'default' => '',
      ),
    ), 
    'primary key' => array('job'), 
    'indexes' => array(
      'ages' => array('age'),
    ),
  );

  $schema['test_one_blob'] = array(
    'description' => 'A simple table including a BLOB field for testing BLOB behavior.', 
    'fields' => array(
      'id' => array(
        'description' => 'Simple unique ID.', 
        'type' => 'serial', 
        'not null' => TRUE,
      ), 
      'blob1' => array(
        'description' => 'A BLOB field.', 
        'type' => 'blob',
      ),
    ), 
    'primary key' => array('id'),
  );

  $schema['test_two_blobs'] = array(
    'description' => 'A simple test table with two BLOB fields.', 
    'fields' => array(
      'id' => array(
        'description' => 'Simple unique ID.', 
        'type' => 'serial', 
        'not null' => TRUE,
      ), 
      'blob1' => array(
        'description' => 'A dummy BLOB field.', 
        'type' => 'blob',
      ), 
      'blob2' => array(
        'description' => 'A second BLOB field.', 
        'type' => 'blob',
      ),
    ), 
    'primary key' => array('id'),
  );

  $schema['test_task'] = array(
    'description' => 'A task list for people in the test table.', 
    'fields' => array(
      'tid' => array(
        'description' => 'Task ID, primary key.', 
        'type' => 'serial', 
        'not null' => TRUE,
      ), 
      'pid' => array(
        'description' => 'The {test_people}.pid, foreign key for the test table.', 
        'type' => 'int', 
        'unsigned' => TRUE, 
        'not null' => TRUE, 
        'default' => 0,
      ), 
      'task' => array(
        'description' => 'The task to be completed.', 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => TRUE, 
        'default' => '',
      ), 
      'priority' => array(
        'description' => 'The priority of the task.', 
        'type' => 'int', 
        'unsigned' => TRUE, 
        'not null' => TRUE, 
        'default' => 0,
      ),
    ), 
    'primary key' => array('tid'),
  );

  $schema['test_null'] = array(
    'description' => 'Basic test table for NULL value handling.', 
    'fields' => array(
      'id' => array(
        'type' => 'serial', 
        'unsigned' => TRUE, 
        'not null' => TRUE,
      ), 
      'name' => array(
        'description' => "A person's name.", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => FALSE, 
        'default' => '',
      ), 
      'age' => array(
        'description' => "The person's age.", 
        'type' => 'int', 
        'unsigned' => TRUE, 
        'not null' => FALSE, 
        'default' => 0,
      ),
    ), 
    'primary key' => array('id'), 
    'unique keys' => array(
      'name' => array('name'),
    ), 
    'indexes' => array(
      'ages' => array('age'),
    ),
  );

  $schema['test_serialized'] = array(
    'description' => 'Basic test table for NULL value handling.', 
    'fields' => array(
      'id' => array(
        'type' => 'serial', 
        'unsigned' => TRUE, 
        'not null' => TRUE,
      ), 
      'name' => array(
        'description' => "A person's name.", 
        'type' => 'varchar', 
        'length' => 255, 
        'not null' => FALSE, 
        'default' => '',
      ), 
      'info' => array(
        'description' => "The person's data in serialized form.", 
        'type' => 'blob', 
        'serialize' => TRUE,
      ),
    ), 
    'primary key' => array('id'), 
    'unique keys' => array(
      'name' => array('name'),
    ),
  );

  return $schema;
}
Login or register to post comments