MDL-19057 enhanced test_get_columns()

This commit is contained in:
Petr Skoda
2010-09-06 14:03:32 +00:00
parent 5d1e1ad0ce
commit 1a7fa6bb00
+49 -25
View File
@@ -380,7 +380,8 @@ class dml_test extends UnitTestCase {
$dbman->create_table($table);
$this->tables[$tablename] = $table;
$this->assertTrue($indices = $DB->get_indexes($tablename));
$indices = $DB->get_indexes($tablename);
$this->assertTrue(is_array($indices));
$this->assertEqual(count($indices), 2);
// we do not care about index names for now
$first = array_shift($indices);
@@ -401,28 +402,7 @@ class dml_test extends UnitTestCase {
$this->assertEqual('id', $composed['columns'][1]);
}
public function testDefaults() {
$DB = $this->tdb;
$dbman = $this->tdb->get_manager();
$table = $this->get_test_table();
$tablename = $table->getName();
$table->add_field('enumfield', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, 'test2');
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$dbman->create_table($table);
$this->tables[$tablename] = $table;
$columns = $DB->get_columns($tablename);
$enumfield = $columns['enumfield'];
$this->assertEqual('test2', $enumfield->default_value);
$this->assertEqual('C', $enumfield->meta_type);
}
public function testGetColumns() {
public function test_get_columns() {
$DB = $this->tdb;
$dbman = $this->tdb->get_manager();
@@ -431,15 +411,59 @@ class dml_test extends UnitTestCase {
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('course', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, null, null, '0');
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, null, null, 'lala');
$table->add_field('description', XMLDB_TYPE_TEXT, 'small', null, null, null, null);
$table->add_field('enumfield', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, 'test2');
$table->add_field('onenum', XMLDB_TYPE_NUMBER, '10,2', null, null, null, 200);
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$dbman->create_table($table);
$this->tables[$tablename] = $table;
$this->assertTrue($columns = $DB->get_columns($tablename));
$columns = $DB->get_columns($tablename);
$this->assertTrue(is_array($columns));
$fields = $this->tables[$tablename]->getFields();
$this->assertEqual(count($columns), count($fields));
$field = $columns['id'];
$this->assertEqual('R', $field->meta_type);
$this->assertTrue($field->auto_increment);
$this->assertTrue($field->unique);
$field = $columns['course'];
$this->assertEqual('I', $field->meta_type);
$this->assertFalse($field->auto_increment);
$this->assertTrue($field->has_default);
$this->assertEqual(0, $field->default_value);
$this->assertTrue($field->not_null);
$field = $columns['name'];
$this->assertEqual('C', $field->meta_type);
$this->assertFalse($field->auto_increment);
$this->assertTrue($field->has_default);
$this->assertIdentical('lala', $field->default_value);
$this->assertFalse($field->not_null);
$field = $columns['description'];
$this->assertEqual('X', $field->meta_type);
$this->assertFalse($field->auto_increment);
$this->assertFalse($field->has_default);
$this->assertIdentical(null, $field->default_value);
$this->assertFalse($field->not_null);
$field = $columns['enumfield'];
$this->assertEqual('C', $field->meta_type);
$this->assertFalse($field->auto_increment);
$this->assertIdentical('test2', $field->default_value);
$this->assertTrue($field->not_null);
$field = $columns['onenum'];
$this->assertEqual('N', $field->meta_type);
$this->assertFalse($field->auto_increment);
$this->assertTrue($field->has_default);
$this->assertEqual(200.0, $field->default_value);
$this->assertFalse($field->not_null);
for ($i = 0; $i < count($columns); $i++) {
if ($i == 0) {
$next_column = reset($columns);