/** * Tests getting the defined types for fields. * * @covers empire\framework\db\schema\Field::getDefinedTypes */ public function testGetDefinedTypes() { $types = Field::getDefinedTypes(); $this->assertContainsOnly('string', $types); }
/** * Tests setting a field type. * * @depends testCreateTable * @covers empire\framework\db\DB::setType * * @param DB[] $dbs the database objects to work on */ public function testSetType($dbs) { foreach ($dbs as $db) { /* @var $db DB */ $db->addField('test', new Field('testSetType', new Type(Field::TYPE_INT))); // get the default lengths first $defaultLengths = array(Field::TYPE_SMALLINT => null, Field::TYPE_INT => null, Field::TYPE_BIGINT => null, Field::TYPE_FLOAT => null, Field::TYPE_DOUBLE => null, Field::TYPE_DECIMAL => '5,2', Field::TYPE_CHAR => 10, Field::TYPE_VARCHAR => 255, Field::TYPE_TEXT => null, Field::TYPE_BLOB => null, Field::TYPE_TIMESTAMP => null, Field::TYPE_DATE => null, Field::TYPE_TIME => null, Field::TYPE_BOOLEAN => null); foreach (Field::getDefinedTypes() as $typeName) { $db->addField('test', new Field('getDefaultLength', new Type($typeName, $defaultLengths[$typeName]))); $type = $db->getType('test', 'getDefaultLength'); $defaultLengths[$typeName] = $type->getLength(); $db->dropField('test', 'getDefaultLength'); } foreach (Field::getDefinedTypes() as $typeName) { $type = new Type($typeName, $defaultLengths[$typeName]); $db->setType('test', 'testSetType', $type); $this->assertEquals($type, $db->getType('test', 'testSetType')); } } }