DDC1113Test.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. require_once __DIR__ . '/../../../TestInit.php';
  5. /**
  6. * @group DDC-1113
  7. * @group DDC-1306
  8. */
  9. class DDC1113Test extends \Doctrine\Tests\OrmFunctionalTestCase
  10. {
  11. public function setUp()
  12. {
  13. parent::setUp();
  14. try {
  15. $this->_schemaTool->createSchema(array(
  16. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1113Engine'),
  17. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1113Vehicle'),
  18. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1113Car'),
  19. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1113Bus'),
  20. ));
  21. } catch (\Exception $e) {
  22. }
  23. }
  24. public function testIssue()
  25. {
  26. $car = new DDC1113Car();
  27. $car->engine = new DDC1113Engine();
  28. $bus = new DDC1113Bus();
  29. $bus->engine = new DDC1113Engine();
  30. $this->_em->persist($car);
  31. $this->_em->flush();
  32. $this->_em->persist($bus);
  33. $this->_em->flush();
  34. $this->_em->remove($bus);
  35. $this->_em->remove($car);
  36. $this->_em->flush();
  37. }
  38. }
  39. /**
  40. * @Entity
  41. * @InheritanceType("SINGLE_TABLE")
  42. * @DiscriminatorMap({"car" = "DDC1113Car", "bus" = "DDC1113Bus"})
  43. */
  44. class DDC1113Vehicle
  45. {
  46. /** @Id @GeneratedValue @Column(type="integer") */
  47. public $id;
  48. /**
  49. * @ManyToOne(targetEntity="DDC1113Vehicle")
  50. */
  51. public $parent;
  52. /** @OneToOne(targetEntity="DDC1113Engine", cascade={"persist", "remove"}) */
  53. public $engine;
  54. }
  55. /**
  56. * @Entity
  57. */
  58. class DDC1113Car extends DDC1113Vehicle
  59. {
  60. }
  61. /**
  62. * @Entity
  63. */
  64. class DDC1113Bus extends DDC1113Vehicle
  65. {
  66. }
  67. /**
  68. * @Entity
  69. */
  70. class DDC1113Engine
  71. {
  72. /** @Id @GeneratedValue @Column(type="integer") */
  73. public $id;
  74. }