From 033b8e51e95fcda698cd09888e086c25c43a72ca Mon Sep 17 00:00:00 2001 From: Thomas Lallement Date: Tue, 22 Jul 2014 15:20:44 +0200 Subject: [PATCH] Create DDC3223Test.php --- .../ORM/Functional/Ticket/DDC3223Test.php | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3223Test.php diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3223Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3223Test.php new file mode 100644 index 000000000..f3d65f864 --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3223Test.php @@ -0,0 +1,103 @@ + + */ +class DDC3223Test extends OrmFunctionalTestCase +{ + protected function setUp() + { + parent::setUp(); + + $this->setUpEntitySchema(array( + 'Doctrine\Tests\ORM\Functional\Ticket\Journalist', + 'Doctrine\Tests\ORM\Functional\Ticket\Participant', + 'Doctrine\Tests\ORM\Functional\Ticket\Status', + 'Doctrine\Tests\ORM\Functional\Ticket\ProfileStatus', + )); + } + + public function testIssueGetId() + { + $profileStatus = new ProfileStatus(); + + $participant = new Journalist(); + $participant->profileStatus = $profileStatus; + + $this->_em->persist($profileStatus); + $this->_em->persist($participant); + $this->_em->flush(); + $this->_em->clear(); + + $participant = $this->_em->find('Doctrine\Tests\ORM\Functional\Ticket\Participant', $participant->id); + + $profileStatus = clone $participant->profileStatus; + + $this->assertSame(1, $profileStatus->getId(), 'The identifier on the cloned instance is an integer'); + } +} + +/** + * @Entity @Table(name="ddc3223_journalist") + */ +class Journalist extends Participant +{ +} + +/** + * @Entity @Table(name="ddc3223_participant") + * @InheritanceType("JOINED") + * @DiscriminatorColumn(name="discr", type="string") + * @DiscriminatorMap({ + * "journalist" = "Journalist", + * }) + */ +class Participant +{ + /** + * @Id @Column(type="integer") + * @GeneratedValue + */ + public $id; + + /** + * @ManyToOne(targetEntity="ProfileStatus") + */ + public $profileStatus; +} + +/** + * @Entity @Table(name="ddc3223_status") + * @InheritanceType("SINGLE_TABLE") + * @DiscriminatorColumn(name="discr", type="string") + * @DiscriminatorMap({ + * "profile" = "ProfileStatus", + * }) + */ +class Status +{ + /** + * @Id @Column(type="integer") + * @GeneratedValue(strategy="AUTO") + */ + private $id; + + public function getId() + { + return $this->id; + } +} + +/** + * @Entity + */ +class ProfileStatus extends Status +{ + +}