DDC-966 - Fix NOT NULL constraint SingleTableInheritance Generation using SchemaTool.
This commit is contained in:
parent
ed7ec261d0
commit
c1edd5848f
@ -275,6 +275,10 @@ class SchemaTool
|
||||
$pkColumns = array();
|
||||
|
||||
foreach ($class->fieldMappings as $fieldName => $mapping) {
|
||||
if ($class->isInheritanceTypeSingleTable() && isset($mapping['inherited'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$column = $this->_gatherColumn($class, $mapping, $table);
|
||||
|
||||
if ($class->isIdentifier($mapping['fieldName'])) {
|
||||
|
@ -19,6 +19,7 @@ class AllTests
|
||||
{
|
||||
$suite = new \Doctrine\Tests\DoctrineTestSuite('Doctrine Orm Functional Tools');
|
||||
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\SchemaTool\CompanySchemaTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\SchemaTool\MySqlSchemaToolTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\SchemaTool\PostgreSqlSchemaToolTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\SchemaTool\DDC214Test');
|
||||
|
@ -0,0 +1,53 @@
|
||||
<?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());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user