public function testTableCreateDefinitions()
{
$provider = $this->getProvider(['tl_member' => ['TABLE_FIELDS' => ['id' => "`id` int(10) NOT NULL default '0'", 'pid' => '`pid` int(10) NULL', 'username' => "`username` varchar(128) NOT NULL default ''", 'firstname' => "`firstname` varchar(128) NOT NULL default ''", 'lastname' => "`lastname` varchar(128) NOT NULL default ''"], 'TABLE_CREATE_DEFINITIONS' => ['PRIMARY' => 'PRIMARY KEY (`id`)', 'pid' => 'KEY `pid` (`pid`)', 'username' => 'UNIQUE KEY `username` (`username`)', 'name' => 'KEY `name` (`firstname`, `lastname`)']]]);
$schema = $provider->createSchema();
$this->assertCount(1, $schema->getTableNames());
$this->assertTrue($schema->hasTable('tl_member'));
$table = $schema->getTable('tl_member');
$this->assertTrue($table->hasIndex('PRIMARY'));
$this->assertTrue($table->getIndex('PRIMARY')->isPrimary());
$this->assertEquals(['id'], $table->getIndex('PRIMARY')->getColumns());
$this->assertTrue($table->hasIndex('pid'));
$this->assertFalse($table->getIndex('pid')->isUnique());
$this->assertEquals(['pid'], $table->getIndex('pid')->getColumns());
$this->assertTrue($table->hasIndex('username'));
$this->assertTrue($table->getIndex('username')->isUnique());
$this->assertEquals(['username'], $table->getIndex('username')->getColumns());
$this->assertTrue($table->hasIndex('name'));
$this->assertFalse($table->getIndex('name')->isUnique());
$this->assertEquals(['firstname', 'lastname'], $table->getIndex('name')->getColumns());
}