Newer
Older
/**
* @file
* Data module tests.
*/
require_once(drupal_get_path('module', 'data') .'/tests/data.test.inc');
class DataTestCaseAPI extends DataTestCase {
/**
* Describe this test.
*/
public function getInfo() {
return array(
'name' => t('Data API'),
'description' => t('Unit tests for Data module\'s API'),
'group' => t('Data'),
);
}
/**
* Set up test.
*/
public function setUp() {
Alex Barth
committed
parent::setUp('ctools', 'data');
}
/**
* Run CRUD tests.
*/
public function testCRUD() {
// Create table.
$table_name = data_name($this->randomName(5, 'crud'));
if (!$table = data_create_table($table_name, $this->testSchema())) {
Alex Barth
committed
$this->assertTrue(db_table_exists($table->get('name')), 'Created table '. $table->get('name'));
$schema = drupal_get_schema($table->get('name'));
$this->assertTrue(!empty($schema), 'Schema information is available.');
$handler = data_get_handler($table->get('name'));
$handler->save($test_data[0], array('id'));
$handler->save($test_data[1], array('id'));
$handler->save($test_data[1], array('id'));
$data = $handler->load(array('id' => 1));
$this->assertEqual($data[0], $test_data[1], 'Loaded data matches saved data.');
// Manipulate second record, save and load.
$data[0]['char0'] = 'test';
$handler->save($data[0], array('id'));
$data = $handler->load(array('id' => 1));
$this->assertEqual($data[0]['char0'], 'test', 'Saved data matches changed data.');
$data = $handler->load(array('char0' => 'test'));
$this->assertEqual($data[0]['id'], 1, 'Loaded data by string type key.');
// Delete table.
Alex Barth
committed
$table->drop($table_name);
$this->assertFalse(db_table_exists($table_name), 'Dropped table.');
// Create table and drop it again.
$table = data_create_table($table_name, $this->testSchema());
$this->assertTrue(!empty($table), 'Created table with same name '. $table_name);
Alex Barth
committed
$table->drop($table_name);
$this->assertFalse(db_table_exists($table_name), 'Dropped table.');
}
}