Skip to content

Commit

Permalink
Fixing test case in DboMysql
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed Oct 15, 2010
1 parent 5e80cf8 commit 526205b
Showing 1 changed file with 43 additions and 14 deletions.
57 changes: 43 additions & 14 deletions cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php
Expand Up @@ -262,7 +262,7 @@ function testLocalizedFloats() {

$result = $this->Dbo->value(3.141593, 'float');
$this->assertEqual((string)$result, '3.141593');

$result = $this->Dbo->value(3.141593);
$this->assertEqual((string)$result, '3.141593');

Expand Down Expand Up @@ -325,7 +325,7 @@ public function testIndexDetection() {
$result = $this->Dbo->index('simple', false);
$this->Dbo->rawQuery('DROP TABLE ' . $name);
$this->assertEqual($expected, $result);


$name = $this->Dbo->fullTableName('with_a_key');
$this->Dbo->rawQuery('CREATE TABLE ' . $name . ' (id int(11) AUTO_INCREMENT, bool tinyint(1), small_int tinyint(2), primary key(id), KEY `pointless_bool` ( `bool` ));');
Expand Down Expand Up @@ -499,7 +499,7 @@ function testIndexOnMySQL4Output() {
->method('_execute')
->with('SHOW INDEX FROM ' . $name)
->will($this->returnValue($resultMock));

foreach ($columnData as $i => $data) {
$resultMock->expects($this->at($i))->method('fetch')->will($this->returnValue((object) $data));
}
Expand Down Expand Up @@ -580,7 +580,15 @@ function testAlterSchemaIndexes() {
'group1' => array('type' => 'integer', 'null' => true),
'group2' => array('type' => 'integer', 'null' => true)
)));
$this->Dbo->query($this->Dbo->createSchema($schema1));
$result = $this->Dbo->createSchema($schema1);
$this->assertContains('`id` int(11) DEFAULT 0 NOT NULL,', $result);
$this->assertContains('`name` varchar(50) NOT NULL,', $result);
$this->assertContains('`group1` int(11) DEFAULT NULL', $result);
$this->assertContains('`group2` int(11) DEFAULT NULL', $result);

//Test that the string is syntactically correct
$query = $this->Dbo->getConnection()->prepare($result);
$this->assertEquals($result, $query->queryString);

$schema2 = new CakeSchema(array(
'name' => 'AlterTest2',
Expand All @@ -596,10 +604,17 @@ function testAlterSchemaIndexes() {
'compound_idx' => array('column' => array('group1', 'group2'), 'unique' => 0),
'PRIMARY' => array('column' => 'id', 'unique' => 1))
)));
$this->Dbo->query($this->Dbo->alterSchema($schema2->compare($schema1)));

$indexes = $this->Dbo->index('altertest');
$this->assertEqual($schema2->tables['altertest']['indexes'], $indexes);
$result = $this->Dbo->alterSchema($schema2->compare($schema1));
$this->assertContains('ALTER TABLE `altertest`', $result);
$this->assertContains('ADD KEY name_idx (`name`),', $result);
$this->assertContains('ADD KEY group_idx (`group1`),', $result);
$this->assertContains('ADD KEY compound_idx (`group1`, `group2`),', $result);
$this->assertContains('ADD PRIMARY KEY (`id`);', $result);

//Test that the string is syntactically correct
$query = $this->Dbo->getConnection()->prepare($result);
$this->assertEquals($result, $query->queryString);

// Change three indexes, delete one and add another one
$schema3 = new CakeSchema(array(
Expand All @@ -617,22 +632,36 @@ function testAlterSchemaIndexes() {
'id_name_idx' => array('column' => array('id', 'name'), 'unique' => 0))
)));

$this->Dbo->query($this->Dbo->alterSchema($schema3->compare($schema2)));
$result = $this->Dbo->alterSchema($schema3->compare($schema2));
$this->assertContains('ALTER TABLE `altertest`', $result);
$this->assertContains('DROP PRIMARY KEY,', $result);
$this->assertContains('DROP KEY name_idx,', $result);
$this->assertContains('DROP KEY group_idx,', $result);
$this->assertContains('DROP KEY compound_idx,', $result);
$this->assertContains('ADD KEY id_name_idx (`id`, `name`),', $result);
$this->assertContains('ADD UNIQUE KEY name_idx (`name`),', $result);
$this->assertContains('ADD KEY group_idx (`group2`),', $result);
$this->assertContains('ADD KEY compound_idx (`group2`, `group1`);', $result);

$indexes = $this->Dbo->index('altertest');
$this->assertEqual($schema3->tables['altertest']['indexes'], $indexes);
$query = $this->Dbo->getConnection()->prepare($result);
$this->assertEquals($result, $query->queryString);

// Compare us to ourself.
$this->assertEqual($schema3->compare($schema3), array());

// Drop the indexes
$this->Dbo->query($this->Dbo->alterSchema($schema1->compare($schema3)));
$result = $this->Dbo->alterSchema($schema1->compare($schema3));

$indexes = $this->Dbo->index('altertest');
$this->assertEqual(array(), $indexes);
$this->assertContains('ALTER TABLE `altertest`', $result);
$this->assertContains('DROP KEY name_idx,', $result);
$this->assertContains('DROP KEY group_idx,', $result);
$this->assertContains('DROP KEY compound_idx,', $result);
$this->assertContains('DROP KEY id_name_idx;', $result);

$this->Dbo->query($this->Dbo->dropSchema($schema1));
$query = $this->Dbo->getConnection()->prepare($result);
$this->assertEquals($result, $query->queryString);
}

/**
* test saving and retrieval of blobs
*
Expand Down

0 comments on commit 526205b

Please sign in to comment.