Commit 32363a20 authored by piccoloprincipe's avatar piccoloprincipe

divided some assertions in various cohesive methods and renamed method names...

divided some assertions in various cohesive methods and renamed method names to conform to agile documentation (affects #2316)
parent 0515d9ab
...@@ -16,7 +16,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -16,7 +16,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform = new MssqlPlatform; $this->_platform = new MssqlPlatform;
} }
public function testCreateTableSql() public function testGeneratesTableCreationSql()
{ {
$columns = array( $columns = array(
'id' => array( 'id' => array(
...@@ -40,7 +40,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -40,7 +40,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->assertEquals('CREATE TABLE test (id INT AUTO_INCREMENT NOT NULL, test VARCHAR(255) NOT NULL, PRIMARY KEY(id))', $sql[0]); $this->assertEquals('CREATE TABLE test (id INT AUTO_INCREMENT NOT NULL, test VARCHAR(255) NOT NULL, PRIMARY KEY(id))', $sql[0]);
} }
public function testAlterTableSql() public function testGeneratesTableAlterationSql()
{ {
$changes = array( $changes = array(
'name' => 'userlist', 'name' => 'userlist',
...@@ -57,31 +57,17 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -57,31 +57,17 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testCreateIndexSql() public function testGeneratesSqlSnippets()
{ {
$indexDef = array( $this->assertEquals('RLIKE', $this->_platform->getRegexpExpression(), 'Regular expression operator is not correct');
'fields' => array( $this->assertEquals('`', $this->_platform->getIdentifierQuoteCharacter(), 'Identifier quote character is not correct');
'user_name' => array( $this->assertEquals('RAND()', $this->_platform->getRandomExpression(), 'Random function is not correct');
'sorting' => 'ASC', $this->assertEquals('(column1 + column2 + column3)', $this->_platform->getConcatExpression('column1', 'column2', 'column3'), 'Concatenation expression is not correct');
'length' => 10 $this->assertEquals('CHARACTER SET utf8', $this->_platform->getCharsetFieldDeclaration('utf8'), 'Charset declaration is not correct');
),
'last_login' => array()
)
);
$this->assertEquals(
'CREATE INDEX my_idx ON mytable (user_name, last_login)',
$this->_platform->getCreateIndexSql('mytable', 'my_idx', $indexDef)
);
} }
public function testSqlSnippets() public function testGeneratesTransactionsCommands()
{ {
$this->assertEquals('RLIKE', $this->_platform->getRegexpExpression());
$this->assertEquals('`', $this->_platform->getIdentifierQuoteCharacter());
$this->assertEquals('RAND()', $this->_platform->getRandomExpression());
$this->assertEquals('(column1 + column2 + column3)', $this->_platform->getConcatExpression('column1', 'column2', 'column3'));
$this->assertEquals('CHARACTER SET utf8', $this->_platform->getCharsetFieldDeclaration('utf8'));
$this->assertEquals( $this->assertEquals(
'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED', 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
$this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED) $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED)
...@@ -100,7 +86,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -100,7 +86,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testDDLSnippets() public function testGeneratesDDLSnippets()
{ {
$this->assertEquals('SHOW DATABASES', $this->_platform->getShowDatabasesSql()); $this->assertEquals('SHOW DATABASES', $this->_platform->getShowDatabasesSql());
$this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar')); $this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar'));
...@@ -108,7 +94,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -108,7 +94,7 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar')); $this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar'));
} }
public function testTypeDeclarationSql() public function testGeneratesTypeDeclarationForIntegers()
{ {
$this->assertEquals( $this->assertEquals(
'INT', 'INT',
...@@ -123,6 +109,10 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -123,6 +109,10 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform->getIntegerTypeDeclarationSql( $this->_platform->getIntegerTypeDeclarationSql(
array('autoincrement' => true, 'primary' => true) array('autoincrement' => true, 'primary' => true)
)); ));
}
public function testGeneratesTypeDeclarationsForStrings()
{
$this->assertEquals( $this->assertEquals(
'CHAR(10)', 'CHAR(10)',
$this->_platform->getVarcharTypeDeclarationSql( $this->_platform->getVarcharTypeDeclarationSql(
...@@ -130,37 +120,64 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -130,37 +120,64 @@ class MsSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
)); ));
$this->assertEquals( $this->assertEquals(
'VARCHAR(50)', 'VARCHAR(50)',
$this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)) $this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)),
'Variable string declaration is not correct'
); );
$this->assertEquals( $this->assertEquals(
'TEXT', 'TEXT',
$this->_platform->getVarcharTypeDeclarationSql(array()) $this->_platform->getVarcharTypeDeclarationSql(array()),
'Long string declaration is not correct'
); );
} }
public function testPreferences() public function testPrefersIdentityColumns()
{ {
$this->assertTrue($this->_platform->prefersIdentityColumns()); $this->assertTrue($this->_platform->prefersIdentityColumns());
}
public function testSupportsIdentityColumns()
{
$this->assertTrue($this->_platform->supportsIdentityColumns()); $this->assertTrue($this->_platform->supportsIdentityColumns());
$this->assertFalse($this->_platform->supportsSavepoints());
} }
public function testGetCreateConstraintSql() public function testDoesNotSupportSavePoints()
{
$this->assertFalse($this->_platform->supportsSavepoints());
}
public function testGeneratesConstraintCreationSql()
{ {
$sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array()))); $sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array())));
$this->assertEquals($sql, 'ALTER TABLE test ADD CONSTRAINT constraint_name (test)'); $this->assertEquals($sql, 'ALTER TABLE test ADD CONSTRAINT constraint_name (test)');
} }
public function testGetCreateIndexSql() public function testGeneratesIndexCreationSql()
{
$indexDef = array(
'fields' => array(
'user_name' => array(
'sorting' => 'ASC',
'length' => 10
),
'last_login' => array()
)
);
$this->assertEquals(
'CREATE INDEX my_idx ON mytable (user_name, last_login)',
$this->_platform->getCreateIndexSql('mytable', 'my_idx', $indexDef)
);
}
public function testGeneratesUniqueIndexCreationSql()
{ {
$sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2'))); $sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2')));
$this->assertEquals($sql, 'CREATE UNIQUE INDEX index_name ON test (test, test2)'); $this->assertEquals($sql, 'CREATE UNIQUE INDEX index_name ON test (test, test2)');
} }
public function testGetCreateForeignKeySql() public function testGeneratesForeignKeyCreationSql()
{ {
$sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id')); $sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id'));
$this->assertEquals($sql, 'ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)'); $this->assertEquals($sql, 'ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)');
} }
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -16,7 +16,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform = new MySqlPlatform; $this->_platform = new MySqlPlatform;
} }
public function testCreateTableSql() public function testGeneratesTableCreationSql()
{ {
$columns = array( $columns = array(
'id' => array( 'id' => array(
...@@ -40,7 +40,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -40,7 +40,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->assertEquals('CREATE TABLE test (id INT AUTO_INCREMENT NOT NULL, test VARCHAR(255) NOT NULL, PRIMARY KEY(id))', $sql[0]); $this->assertEquals('CREATE TABLE test (id INT AUTO_INCREMENT NOT NULL, test VARCHAR(255) NOT NULL, PRIMARY KEY(id))', $sql[0]);
} }
public function testAlterTableSql() public function testGeneratesTableAlterationSql()
{ {
$changes = array( $changes = array(
'name' => 'userlist', 'name' => 'userlist',
...@@ -57,34 +57,21 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -57,34 +57,21 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testCreateIndexSql() public function testGeneratesSqlSnippets()
{ {
$indexDef = array( $this->assertEquals('RLIKE', $this->_platform->getRegexpExpression(), 'Regular expression operator is not correct');
'fields' => array( $this->assertEquals('`', $this->_platform->getIdentifierQuoteCharacter(), 'Quote character is not correct');
'user_name' => array( $this->assertEquals('RAND()', $this->_platform->getRandomExpression(), 'Random function is not correct');
'sorting' => 'ASC', $this->assertEquals('CONCAT(column1, column2, column3)', $this->_platform->getConcatExpression('column1', 'column2', 'column3'), 'Concatenation function is not correct');
'length' => 10 $this->assertEquals('CHARACTER SET utf8', $this->_platform->getCharsetFieldDeclaration('utf8'), 'Charset declaration is not correct');
),
'last_login' => array()
)
);
$this->assertEquals(
'CREATE INDEX my_idx ON mytable (user_name(10) ASC, last_login)',
$this->_platform->getCreateIndexSql('mytable', 'my_idx', $indexDef)
);
} }
public function testSqlSnippets() public function testGeneratesTransactionsCommands()
{ {
$this->assertEquals('RLIKE', $this->_platform->getRegexpExpression());
$this->assertEquals('`', $this->_platform->getIdentifierQuoteCharacter());
$this->assertEquals('RAND()', $this->_platform->getRandomExpression());
$this->assertEquals('CONCAT(column1, column2, column3)', $this->_platform->getConcatExpression('column1', 'column2', 'column3'));
$this->assertEquals('CHARACTER SET utf8', $this->_platform->getCharsetFieldDeclaration('utf8'));
$this->assertEquals( $this->assertEquals(
'SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED', 'SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
$this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED) $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED),
''
); );
$this->assertEquals( $this->assertEquals(
'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED', 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',
...@@ -100,7 +87,8 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -100,7 +87,8 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testDDLSnippets()
public function testGeneratesDDLSnippets()
{ {
$this->assertEquals('SHOW DATABASES', $this->_platform->getShowDatabasesSql()); $this->assertEquals('SHOW DATABASES', $this->_platform->getShowDatabasesSql());
$this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar')); $this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar'));
...@@ -108,7 +96,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -108,7 +96,7 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar')); $this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar'));
} }
public function testTypeDeclarationSql() public function testGeneratesTypeDeclarationForIntegers()
{ {
$this->assertEquals( $this->assertEquals(
'INT', 'INT',
...@@ -123,6 +111,10 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -123,6 +111,10 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform->getIntegerTypeDeclarationSql( $this->_platform->getIntegerTypeDeclarationSql(
array('autoincrement' => true, 'primary' => true) array('autoincrement' => true, 'primary' => true)
)); ));
}
public function testGeneratesTypeDeclarationForStrings()
{
$this->assertEquals( $this->assertEquals(
'CHAR(10)', 'CHAR(10)',
$this->_platform->getVarcharTypeDeclarationSql( $this->_platform->getVarcharTypeDeclarationSql(
...@@ -130,37 +122,64 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -130,37 +122,64 @@ class MySqlPlatformTest extends \Doctrine\Tests\DbalTestCase
)); ));
$this->assertEquals( $this->assertEquals(
'VARCHAR(50)', 'VARCHAR(50)',
$this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)) $this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)),
'Variable string declaration is not correct'
); );
$this->assertEquals( $this->assertEquals(
'TEXT', 'TEXT',
$this->_platform->getVarcharTypeDeclarationSql(array()) $this->_platform->getVarcharTypeDeclarationSql(array()),
'Long string declaration is not correct'
); );
} }
public function testPreferences() public function testPrefersIdentityColumns()
{ {
$this->assertTrue($this->_platform->prefersIdentityColumns()); $this->assertTrue($this->_platform->prefersIdentityColumns());
}
public function testSupportsIdentityColumns()
{
$this->assertTrue($this->_platform->supportsIdentityColumns()); $this->assertTrue($this->_platform->supportsIdentityColumns());
$this->assertFalse($this->_platform->supportsSavepoints());
} }
public function testGetCreateConstraintSql() public function testDoesNotSupportSavePoints()
{
$this->assertFalse($this->_platform->supportsSavepoints());
}
public function testGeneratesConstraintCreationSql()
{ {
$sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array()))); $sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array())));
$this->assertEquals($sql, 'ALTER TABLE test ADD CONSTRAINT constraint_name (test)'); $this->assertEquals($sql, 'ALTER TABLE test ADD CONSTRAINT constraint_name (test)');
} }
public function testGetCreateIndexSql() public function testGeneratesIndexCreationSql()
{
$indexDef = array(
'fields' => array(
'user_name' => array(
'sorting' => 'ASC',
'length' => 10
),
'last_login' => array()
)
);
$this->assertEquals(
'CREATE INDEX my_idx ON mytable (user_name(10) ASC, last_login)',
$this->_platform->getCreateIndexSql('mytable', 'my_idx', $indexDef)
);
}
public function testGeneratesUniqueIndexCreationSql()
{ {
$sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2'))); $sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2')));
$this->assertEquals($sql, 'CREATE UNIQUE INDEX index_name ON test (test, test2)'); $this->assertEquals($sql, 'CREATE UNIQUE INDEX index_name ON test (test, test2)');
} }
public function testGetCreateForeignKeySql() public function testGeneratesForeignKeyCreationSql()
{ {
$sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id')); $sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id'));
$this->assertEquals($sql, 'ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)'); $this->assertEquals($sql, 'ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)');
} }
} }
\ No newline at end of file
...@@ -17,7 +17,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -17,7 +17,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform = new PostgreSqlPlatform; $this->_platform = new PostgreSqlPlatform;
} }
public function testCreateTableSql() public function testGeneratesTableCreationSql()
{ {
$columns = array( $columns = array(
'id' => array( 'id' => array(
...@@ -41,7 +41,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -41,7 +41,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
} }
public function testAlterTableSql() public function testGeneratesTableAlterationSqlForAddingAndRenaming()
{ {
$changes = array( $changes = array(
'name' => 'userlist', 'name' => 'userlist',
...@@ -63,7 +63,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -63,7 +63,7 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testCreateIndexSql() public function testGeneratesIndexCreationSql()
{ {
$indexDef = array( $indexDef = array(
'fields' => array( 'fields' => array(
...@@ -80,12 +80,16 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -80,12 +80,16 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testSqlSnippets() public function testGeneratesSqlSnippets()
{
$this->assertEquals('SIMILAR TO', $this->_platform->getRegexpExpression(), 'Regular expression operator is not correct');
$this->assertEquals('"', $this->_platform->getIdentifierQuoteCharacter(), 'Identifier quote character is not correct');
$this->assertEquals('RANDOM()', $this->_platform->getRandomExpression(), 'Random function is not correct');
$this->assertEquals('column1 || column2 || column3', $this->_platform->getConcatExpression('column1', 'column2', 'column3'), 'Concatenation expression is not correct');
}
public function testGeneratesTransactionCommands()
{ {
$this->assertEquals('SIMILAR TO', $this->_platform->getRegexpExpression());
$this->assertEquals('"', $this->_platform->getIdentifierQuoteCharacter());
$this->assertEquals('RANDOM()', $this->_platform->getRandomExpression());
$this->assertEquals('column1 || column2 || column3', $this->_platform->getConcatExpression('column1', 'column2', 'column3'));
$this->assertEquals( $this->assertEquals(
'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ UNCOMMITTED', 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
$this->_platform->getSetTransactionIsolationSql(Connection::TRANSACTION_READ_UNCOMMITTED) $this->_platform->getSetTransactionIsolationSql(Connection::TRANSACTION_READ_UNCOMMITTED)
...@@ -104,14 +108,14 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -104,14 +108,14 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testDDLSnippets() public function testGeneratesDDLSnippets()
{ {
$this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar')); $this->assertEquals('CREATE DATABASE foobar', $this->_platform->getCreateDatabaseSql('foobar'));
$this->assertEquals('DROP DATABASE foobar', $this->_platform->getDropDatabaseSql('foobar')); $this->assertEquals('DROP DATABASE foobar', $this->_platform->getDropDatabaseSql('foobar'));
$this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar')); $this->assertEquals('DROP TABLE foobar', $this->_platform->getDropTableSql('foobar'));
} }
public function testTypeDeclarationSql() public function testGeneratesTypeDeclarationForIntegers()
{ {
$this->assertEquals( $this->assertEquals(
'INT', 'INT',
...@@ -126,22 +130,28 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -126,22 +130,28 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform->getIntegerTypeDeclarationSql( $this->_platform->getIntegerTypeDeclarationSql(
array('autoincrement' => true, 'primary' => true) array('autoincrement' => true, 'primary' => true)
)); ));
}
public function testGeneratesTypeDeclarationForStrings()
{
$this->assertEquals( $this->assertEquals(
'CHAR(10)', 'CHAR(10)',
$this->_platform->getVarcharTypeDeclarationSql( $this->_platform->getVarcharTypeDeclarationSql(
array('length' => 10, 'fixed' => true) array('length' => 10, 'fixed' => true))
)); );
$this->assertEquals( $this->assertEquals(
'VARCHAR(50)', 'VARCHAR(50)',
$this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)) $this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)),
'Variable string declaration is not correct'
); );
$this->assertEquals( $this->assertEquals(
'TEXT', 'TEXT',
$this->_platform->getVarcharTypeDeclarationSql(array()) $this->_platform->getVarcharTypeDeclarationSql(array()),
'Long string declaration is not correct'
); );
} }
public function testSequenceSQL() public function testGeneratesSequenceSqlCommands()
{ {
$this->assertEquals( $this->assertEquals(
'CREATE SEQUENCE myseq INCREMENT BY 20 START 1', 'CREATE SEQUENCE myseq INCREMENT BY 20 START 1',
...@@ -157,12 +167,28 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -157,12 +167,28 @@ class PostgreSqlPlatformTest extends \Doctrine\Tests\DbalTestCase
); );
} }
public function testPreferences() public function testDoesNotPreferIdentityColumns()
{ {
$this->assertFalse($this->_platform->prefersIdentityColumns()); $this->assertFalse($this->_platform->prefersIdentityColumns());
}
public function testPrefersSequences()
{
$this->assertTrue($this->_platform->prefersSequences()); $this->assertTrue($this->_platform->prefersSequences());
}
public function testSupportsIdentityColumns()
{
$this->assertTrue($this->_platform->supportsIdentityColumns()); $this->assertTrue($this->_platform->supportsIdentityColumns());
}
public function testSupportsSavePoints()
{
$this->assertTrue($this->_platform->supportsSavepoints()); $this->assertTrue($this->_platform->supportsSavepoints());
}
public function testSupportsSequences()
{
$this->assertTrue($this->_platform->supportsSequences()); $this->assertTrue($this->_platform->supportsSequences());
} }
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -16,7 +16,7 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase
$this->_platform = new SqlitePlatform; $this->_platform = new SqlitePlatform;
} }
public function testGetCreateTableSql() public function testGeneratesTableCreationSql()
{ {
$columns = array( $columns = array(
'id' => array( 'id' => array(
...@@ -37,41 +37,27 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -37,41 +37,27 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase
$this->assertEquals('CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, test VARCHAR(255) DEFAULT NULL)', $sql[0]); $this->assertEquals('CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, test VARCHAR(255) DEFAULT NULL)', $sql[0]);
} }
public function testGetCreateConstraintSql() public function testGeneratesSqlSnippets()
{ {
$sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array()))); $this->assertEquals('RLIKE', $this->_platform->getRegexpExpression(), 'Regular expression operator is not correct');
$this->assertEquals('ALTER TABLE test ADD CONSTRAINT constraint_name (test)', $sql); $this->assertEquals('SUBSTR(column, 5, LENGTH(column))', $this->_platform->getSubstringExpression('column', 5), 'Substring expression without length is not correct');
$this->assertEquals('SUBSTR(column, 0, 5)', $this->_platform->getSubstringExpression('column', 0, 5), 'Substring expression with length is not correct');
} }
public function testGetCreateIndexSql() public function testGeneratesTransactionCommands()
{ {
$sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2')));
$this->assertEquals('CREATE UNIQUE INDEX index_name ON test (test, test2)', $sql);
}
public function testGetCreateForeignKeySql()
{
$sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id'));
$this->assertEquals('ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)', $sql);
}
public function testExpressionsSql()
{
$this->assertEquals('RLIKE', $this->_platform->getRegexpExpression());
$this->assertEquals('SUBSTR(column, 5, LENGTH(column))', $this->_platform->getSubstringExpression('column', 5));
$this->assertEquals('SUBSTR(column, 0, 5)', $this->_platform->getSubstringExpression('column', 0, 5));
$this->assertEquals('PRAGMA read_uncommitted = 0', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED)); $this->assertEquals('PRAGMA read_uncommitted = 0', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_UNCOMMITTED));
$this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_COMMITTED)); $this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_READ_COMMITTED));
$this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_REPEATABLE_READ)); $this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_REPEATABLE_READ));
$this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_SERIALIZABLE)); $this->assertEquals('PRAGMA read_uncommitted = 1', $this->_platform->getSetTransactionIsolationSql(\Doctrine\DBAL\Connection::TRANSACTION_SERIALIZABLE));
} }
public function testPreferences() public function testPrefersIdentityColumns()
{ {
$this->assertTrue($this->_platform->prefersIdentityColumns()); $this->assertTrue($this->_platform->prefersIdentityColumns());
} }
public function testTypeDeclarationSql() public function testGeneratesTypeDeclarationForIntegers()
{ {
$this->assertEquals( $this->assertEquals(
'INTEGER', 'INTEGER',
...@@ -79,26 +65,49 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase ...@@ -79,26 +65,49 @@ class SqlitePlatformTest extends \Doctrine\Tests\DbalTestCase
); );
$this->assertEquals( $this->assertEquals(
'INTEGER AUTOINCREMENT', 'INTEGER AUTOINCREMENT',
$this->_platform->getIntegerTypeDeclarationSql(array('autoincrement' => true) $this->_platform->getIntegerTypeDeclarationSql(array('autoincrement' => true))
)); );
$this->assertEquals( $this->assertEquals(
'INTEGER PRIMARY KEY AUTOINCREMENT', 'INTEGER PRIMARY KEY AUTOINCREMENT',
$this->_platform->getIntegerTypeDeclarationSql( $this->_platform->getIntegerTypeDeclarationSql(
array('autoincrement' => true, 'primary' => true) array('autoincrement' => true, 'primary' => true))
)); );
}
public function testGeneratesTypeDeclarationForStrings()
{
$this->assertEquals( $this->assertEquals(
'CHAR(10)', 'CHAR(10)',
$this->_platform->getVarcharTypeDeclarationSql( $this->_platform->getVarcharTypeDeclarationSql(
array('length' => 10, 'fixed' => true) array('length' => 10, 'fixed' => true))
)); );
$this->assertEquals( $this->assertEquals(
'VARCHAR(50)', 'VARCHAR(50)',
$this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)) $this->_platform->getVarcharTypeDeclarationSql(array('length' => 50)),
'Variable string declaration is not correct'
); );
$this->assertEquals( $this->assertEquals(
'TEXT', 'TEXT',
$this->_platform->getVarcharTypeDeclarationSql(array()) $this->_platform->getVarcharTypeDeclarationSql(array()),
'Long string declaration is not correct'
); );
} }
} public function testGeneratesConstraintCreationSql()
\ No newline at end of file {
$sql = $this->_platform->getCreateConstraintSql('test', 'constraint_name', array('fields' => array('test' => array())));
$this->assertEquals('ALTER TABLE test ADD CONSTRAINT constraint_name (test)', $sql);
}
public function testGeneratesIndexCreationSql()
{
$sql = $this->_platform->getCreateIndexSql('test', 'index_name', array('type' => 'unique', 'fields' => array('test', 'test2')));
$this->assertEquals('CREATE UNIQUE INDEX index_name ON test (test, test2)', $sql);
}
public function testGeneratesForeignKeyCreationSql()
{
$sql = $this->_platform->getCreateForeignKeySql('test', array('foreignTable' => 'other_table', 'local' => 'fk_name_id', 'foreign' => 'id'));
$this->assertEquals('ALTER TABLE test ADD FOREIGN KEY (fk_name_id) REFERENCES other_table(id)', $sql);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment