Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / Schema / Visitor / SchemaSqlCollectorTest.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Schema/Visitor/SchemaSqlCollectorTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Schema/Visitor/SchemaSqlCollectorTest.php
new file mode 100644 (file)
index 0000000..8dfd2b2
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Schema\Visitor;
+
+require_once __DIR__ . '/../../../TestInit.php';
+
+use Doctrine\DBAL\Schema\Schema;
+use Doctrine\DBAL\Schema\Table;
+use Doctrine\DBAL\Types\Type;
+
+class SchemaSqlCollectorTest extends \PHPUnit_Framework_TestCase
+{
+    public function testCreateSchema()
+    {
+        $platformMock = $this->getMock(
+            'Doctrine\DBAL\Platforms\MySqlPlatform',
+            array('getCreateTableSql', 'getCreateSequenceSql', 'getCreateForeignKeySql')
+        );
+        $platformMock->expects($this->exactly(2))
+                     ->method('getCreateTableSql')
+                     ->will($this->returnValue(array("foo")));
+        $platformMock->expects($this->exactly(1))
+                     ->method('getCreateSequenceSql')
+                     ->will($this->returnValue(array("bar")));
+        $platformMock->expects($this->exactly(1))
+                     ->method('getCreateForeignKeySql')
+                     ->will($this->returnValue(array("baz")));
+
+        $schema = $this->createFixtureSchema();
+
+        $sql = $schema->toSql($platformMock);
+
+        $this->assertEquals(array("foo", "foo", "bar", "baz"), $sql);
+    }
+
+    public function testDropSchema()
+    {
+        $platformMock = $this->getMock(
+            'Doctrine\DBAL\Platforms\MySqlPlatform',
+            array('getDropTableSql', 'getDropSequenceSql', 'getDropForeignKeySql')
+        );
+        $platformMock->expects($this->exactly(2))
+                     ->method('getDropTableSql')
+                     ->will($this->returnValue("tbl"));
+        $platformMock->expects($this->exactly(1))
+                     ->method('getDropSequenceSql')
+                     ->will($this->returnValue("seq"));
+        $platformMock->expects($this->exactly(1))
+                     ->method('getDropForeignKeySql')
+                     ->will($this->returnValue("fk"));
+
+        $schema = $this->createFixtureSchema();
+
+        $sql = $schema->toDropSql($platformMock);
+
+        $this->assertEquals(array("fk", "seq", "tbl", "tbl"), $sql);
+    }
+
+    /**
+     * @return Schema
+     */
+    public function createFixtureSchema()
+    {
+        $schema = new Schema();
+        $tableA = $schema->createTable("foo");
+        $tableA->addColumn("id", 'integer');
+        $tableA->addColumn("bar", 'string', array('length' => 255));
+        $tableA->setPrimaryKey(array("id"));
+
+        $schema->createSequence("foo_seq");
+
+        $tableB = $schema->createTable("bar");
+        $tableB->addColumn("id", 'integer');
+        $tableB->setPrimaryKey(array("id"));
+
+        $tableA->addForeignKeyConstraint($tableB, array("bar"), array("id"));
+
+        return $schema;
+    }
+}
\ No newline at end of file