You are here

function DatabaseExtraTypesTestCase::testTimeField in SimpleTest 7

Test the time data type.

File

tests/database_test.test, line 2957

Class

DatabaseExtraTypesTestCase
Test proposed new data types for the schema API.

Code

function testTimeField() {
  try {
    $time_table = array(
      'fields' => array(
        'time_field' => array(
          'description' => t('Test Time field'),
          'type' => 'time',
          'not null' => FALSE,
        ),
      ),
    );
    db_create_table('time_table', $time_table);
    $this
      ->assertTrue(db_table_exists('time_table'), t('Created table with time field'));
    db_insert('time_table')
      ->fields(array(
      'time_field',
    ))
      ->values(array(
      'time_field' => '12:59:00',
    ))
      ->values(array(
      'time_field' => '00:01:00',
    ))
      ->values(array(
      'time_field' => '23:17:00',
    ))
      ->execute();
    $num_records = (int) db_query('SELECT COUNT(*) FROM {time_table}')
      ->fetchField();
    $this
      ->assertEqual($num_records, 3, t('Inserted 3 records, and counted 3 records'));
    $res = db_query('SELECT time_field from {time_table} ORDER BY time_field');
    $time = $res
      ->fetch()->time_field;
    $this
      ->assertEqual($time, '00:01:00', t('Time retrieved in order @time', array(
      '@time' => $time,
    )));
    $time = $res
      ->fetch()->time_field;
    $this
      ->assertEqual($time, '12:59:00', t('Time retrieved in order @time', array(
      '@time' => $time,
    )));
    $time = $res
      ->fetch()->time_field;
    $this
      ->assertEqual($time, '23:17:00', t('Time retrieved in order @time', array(
      '@time' => $time,
    )));
    db_drop_table('time_table');
    $this
      ->assertFalse(db_table_exists('time_table'), t('Dropped table with time field'));
  } catch (Exception $e) {
    $this
      ->fail($e
      ->getMessage());
  }
}