Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / Platforms / SqlitePlatformTest.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Platforms/SqlitePlatformTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Platforms/SqlitePlatformTest.php
new file mode 100644 (file)
index 0000000..6548cf8
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Platforms;
+
+use Doctrine\DBAL\Platforms\SqlitePlatform;
+use Doctrine\DBAL\Types\Type;
+
+require_once __DIR__ . '/../../TestInit.php';
+
+class SqlitePlatformTest extends AbstractPlatformTestCase
+{
+    public function createPlatform()
+    {
+        return new SqlitePlatform;
+    }
+
+    public function getGenerateTableSql()
+    {
+        return 'CREATE TABLE test (id INTEGER NOT NULL, test VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))';
+    }
+
+    public function getGenerateTableWithMultiColumnUniqueIndexSql()
+    {
+        return array(
+            'CREATE TABLE test (foo VARCHAR(255) DEFAULT NULL, bar VARCHAR(255) DEFAULT NULL)',
+            'CREATE UNIQUE INDEX UNIQ_D87F7E0C8C73652176FF8CAA ON test (foo, bar)',
+        );
+    }
+
+    public function testGeneratesSqlSnippets()
+    {
+        $this->assertEquals('RLIKE', $this->_platform->getRegexpExpression(), 'Regular expression operator is not correct');
+        $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 testGeneratesTransactionCommands()
+    {
+        $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_REPEATABLE_READ)
+        );
+        $this->assertEquals(
+            'PRAGMA read_uncommitted = 1',
+            $this->_platform->getSetTransactionIsolationSQL(\Doctrine\DBAL\Connection::TRANSACTION_SERIALIZABLE)
+        );
+    }
+
+    public function testPrefersIdentityColumns()
+    {
+        $this->assertTrue($this->_platform->prefersIdentityColumns());
+    }
+
+    public function testGeneratesTypeDeclarationForIntegers()
+    {
+        $this->assertEquals(
+            'INTEGER',
+            $this->_platform->getIntegerTypeDeclarationSQL(array())
+        );
+        $this->assertEquals(
+            'INTEGER',
+            $this->_platform->getIntegerTypeDeclarationSQL(array('autoincrement' => true))
+        );
+        $this->assertEquals(
+            'INTEGER',
+            $this->_platform->getIntegerTypeDeclarationSQL(
+                array('autoincrement' => true, 'primary' => true))
+        );
+    }
+
+    public function testGeneratesTypeDeclarationForStrings()
+    {
+        $this->assertEquals(
+            'CHAR(10)',
+            $this->_platform->getVarcharTypeDeclarationSQL(
+                array('length' => 10, 'fixed' => true))
+        );
+        $this->assertEquals(
+            'VARCHAR(50)',
+            $this->_platform->getVarcharTypeDeclarationSQL(array('length' => 50)),
+            'Variable string declaration is not correct'
+        );
+        $this->assertEquals(
+            'VARCHAR(255)',
+            $this->_platform->getVarcharTypeDeclarationSQL(array()),
+            'Long string declaration is not correct'
+        );
+    }
+
+    public function getGenerateIndexSql()
+    {
+        return 'CREATE INDEX my_idx ON mytable (user_name, last_login)';
+    }
+
+    public function getGenerateUniqueIndexSql()
+    {
+        return 'CREATE UNIQUE INDEX index_name ON test (test, test2)';
+    }
+
+    public function getGenerateForeignKeySql()
+    {
+        $this->markTestSkipped('SQLite does not support ForeignKeys.');
+    }
+
+    public function testModifyLimitQuery()
+    {
+        $sql = $this->_platform->modifyLimitQuery('SELECT * FROM user', 10, 0);
+        $this->assertEquals('SELECT * FROM user LIMIT 10 OFFSET 0', $sql);
+    }
+
+    public function testModifyLimitQueryWithEmptyOffset()
+    {
+        $sql = $this->_platform->modifyLimitQuery('SELECT * FROM user', 10);
+        $this->assertEquals('SELECT * FROM user LIMIT 10', $sql);
+    }
+
+    public function getGenerateAlterTableSql()
+    {
+        $this->markTestSkipped('SQlite does not support ALTER Table.');
+    }
+
+    public function testGetAlterTableSqlDispatchEvent()
+    {
+        $this->markTestSkipped('SQlite does not support ALTER Table.');
+    }
+
+    /**
+     * @group DDC-1845
+     */
+    public function testGenerateTableSqlShouldNotAutoQuotePrimaryKey()
+    {
+        $table = new \Doctrine\DBAL\Schema\Table('test');
+        $table->addColumn('"like"', 'integer', array('notnull' => true, 'autoincrement' => true));
+        $table->setPrimaryKey(array('"like"'));
+
+        $createTableSQL = $this->_platform->getCreateTableSQL($table);
+        $this->assertEquals(
+            'CREATE TABLE test ("like" INTEGER NOT NULL, PRIMARY KEY("like"))',
+            $createTableSQL[0]
+        );
+
+        $this->assertEquals(
+            'ALTER TABLE test ADD PRIMARY KEY ("like")',
+            $this->_platform->getCreatePrimaryKeySQL($table->getIndex('primary'), 'test')
+        );
+    }
+}
\ No newline at end of file