Example #1
0
 /**
  * Tests getting the defined types for fields.
  *
  * @covers empire\framework\db\schema\Field::getDefinedTypes
  */
 public function testGetDefinedTypes()
 {
     $types = Field::getDefinedTypes();
     $this->assertContainsOnly('string', $types);
 }
Example #2
0
 /**
  * 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'));
         }
     }
 }