Skip to content

Commit

Permalink
doctrine#1130 DDC-3300 - fixed inheritance maps where inheritance mem…
Browse files Browse the repository at this point in the history
…bers were missing
  • Loading branch information
Ocramius committed Jan 16, 2015
1 parent e006ecb commit 00bad27
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"child" = "JoinedChildClass",})
* @DiscriminatorMap({"child" = "JoinedChildClass", "root" = "JoinedRootClass"})
*/
class JoinedRootClass
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"child" = "SingleChildClass",})
* @DiscriminatorMap({"child" = "SingleChildClass", "root" = "SingleRootClass"})
*/
class SingleRootClass
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1113Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public function testIssue()
/**
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorMap({"car" = "DDC1113Car", "bus" = "DDC1113Bus"})
* @DiscriminatorMap({"vehicle" = "DDC1113Vehicle", "car" = "DDC1113Car", "bus" = "DDC1113Bus"})
*/
class DDC1113Vehicle
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1454Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class DDC1454Picture extends DDC1454File
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"picture" = "DDC1454Picture"})
* @DiscriminatorMap({"file" = "DDC1454File", "picture" = "DDC1454Picture"})
*/
class DDC1454File
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1509Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public function setThumbnail($thumbnail)
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"file" = "DDC1509File"})
* @DiscriminatorMap({"abstractFile" = "DDC1509AbstractFile", "file" = "DDC1509File"})
*/
class DDC1509AbstractFile
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function testIssue()
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"bar" = "DDC1787Bar"})
* @DiscriminatorMap({"bar" = "DDC1787Bar", "foo" = "DDC1787Foo"})
*/
class DDC1787Foo
{
Expand Down
3 changes: 2 additions & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2012Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ public function testIssue()
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="type_id", type="smallint")
* @DiscriminatorMap({
* 1 = "DDC2012ItemPerson"
* 1 = "DDC2012ItemPerson",
* 2 = "DDC2012Item"
* })
*/
class DDC2012Item
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2346Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public function __construct() {
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"baz" = "DDC2346Baz"})
* @DiscriminatorMap({"bar" = "DDC2346Bar", "baz" = "DDC2346Baz"})
*/
class DDC2346Bar
{
Expand Down
38 changes: 25 additions & 13 deletions tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3300Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Doctrine\ORM\Events;
use Doctrine\ORM\Tools\ResolveDiscriminatorMapListener;
use Doctrine\ORM\Tools\ResolveTargetEntityListener;

/**
* @group DDC-3300
Expand All @@ -12,21 +13,28 @@ class DDC3300Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function testIssue()
{
$this
->_em
->getEventManager()
->addEventListener(
Events::loadClassMetadata,
new ResolveDiscriminatorMapListener(array(
'Doctrine\Tests\ORM\Functional\Ticket\DDC3300BossInterface' => 'Doctrine\Tests\ORM\Functional\Ticket\DDC3300Boss',
'Doctrine\Tests\ORM\Functional\Ticket\DDC3300EmployeeInterface' => 'Doctrine\Tests\ORM\Functional\Ticket\DDC3300Employee',
))
);
$resolveTargetEntity = new ResolveTargetEntityListener();

$resolveTargetEntity->addResolveTargetEntity(
DDC3300BossInterface::INTERFACENAME,
DDC3300Boss::CLASSNAME,
array()
);

$resolveTargetEntity->addResolveTargetEntity(
DDC3300EmployeeInterface::INTERFACENAME,
DDC3300Employee::CLASSNAME,
array()
);

$this->_em->getEventManager()->addEventSubscriber($resolveTargetEntity);

$this->_schemaTool->createSchema(array(
$this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC3300Person'),
$this->_em->getClassMetadata(DDC3300Person::CLASSNAME),
));

//die(var_dump($this->_em->getClassMetadata(DDC3300Person::CLASSNAME)->discriminatorMap));

$boss = new DDC3300Boss();
$this->_em->persist($boss);

Expand All @@ -48,6 +56,8 @@ public function testIssue()
*/
abstract class DDC3300Person
{
const CLASSNAME = __CLASS__;

/**
* @Id
* @Column(type="integer")
Expand All @@ -58,25 +68,27 @@ abstract class DDC3300Person

interface DDC3300BossInterface
{

const INTERFACENAME = __CLASS__;
}

/**
* @Entity
*/
class DDC3300Boss extends DDC3300Person implements DDC3300BossInterface
{
const CLASSNAME = __CLASS__;
}

interface DDC3300EmployeeInterface
{

const INTERFACENAME = __CLASS__;
}

/**
* @Entity
*/
class DDC3300Employee extends DDC3300Person implements DDC3300EmployeeInterface
{
const CLASSNAME = __CLASS__;
}

0 comments on commit 00bad27

Please sign in to comment.