Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / SchemaTool / CompanySchemaTest.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/SchemaTool/CompanySchemaTest.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/SchemaTool/CompanySchemaTest.php
new file mode 100644 (file)
index 0000000..a1e6dac
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+namespace Doctrine\Tests\ORM\Functional\SchemaTool;
+
+use Doctrine\DBAL\Schema\Schema;
+
+require_once __DIR__ . '/../../../TestInit.php';
+
+/**
+ * Functional tests for the Class Table Inheritance mapping strategy.
+ *
+ * @author robo
+ */
+class CompanySchemaTest extends \Doctrine\Tests\OrmFunctionalTestCase
+{
+    protected function setUp()
+    {
+        $this->useModelSet('company');
+        parent::setUp();
+    }
+
+    /**
+     * @group DDC-966
+     * @return Schema
+     */
+    public function testGeneratedSchema()
+    {
+        $schema = $this->_em->getConnection()->getSchemaManager()->createSchema();
+
+        $this->assertTrue($schema->hasTable('company_contracts'));
+
+        return $schema;
+    }
+
+    /**
+     * @group DDC-966
+     * @depends testGeneratedSchema
+     */
+    public function testSingleTableInheritance(Schema $schema)
+    {
+        $table = $schema->getTable('company_contracts');
+
+        // Check nullability constraints
+        $this->assertTrue($table->getColumn('id')->getNotnull());
+        $this->assertTrue($table->getColumn('completed')->getNotnull());
+        $this->assertFalse($table->getColumn('salesPerson_id')->getNotnull());
+        $this->assertTrue($table->getColumn('discr')->getNotnull());
+        $this->assertFalse($table->getColumn('fixPrice')->getNotnull());
+        $this->assertFalse($table->getColumn('hoursWorked')->getNotnull());
+        $this->assertFalse($table->getColumn('pricePerHour')->getNotnull());
+        $this->assertFalse($table->getColumn('maxPrice')->getNotnull());
+    }
+
+    /**
+     * @group DBAL-115
+     */
+    public function testDropPartSchemaWithForeignKeys()
+    {
+        if (!$this->_em->getConnection()->getDatabasePlatform()->supportsForeignKeyConstraints()) {
+            $this->markTestSkipped("Foreign Key test");
+        }
+
+        $sql = $this->_schemaTool->getDropSchemaSQL(array(
+            $this->_em->getClassMetadata('Doctrine\Tests\Models\Company\CompanyManager'),
+        ));
+        $this->assertEquals(4, count($sql));
+    }
+}