DDC513Test.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. require_once __DIR__ . '/../../../TestInit.php';
  4. class DDC513Test extends \Doctrine\Tests\OrmFunctionalTestCase
  5. {
  6. protected function setUp()
  7. {
  8. parent::setUp();
  9. $this->_schemaTool->createSchema(array(
  10. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC513OfferItem'),
  11. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC513Item'),
  12. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC513Price'),
  13. ));
  14. }
  15. public function testIssue()
  16. {
  17. $q = $this->_em->createQuery("select u from ".__NAMESPACE__."\\DDC513OfferItem u left join u.price p");
  18. $this->assertEquals(
  19. strtolower('SELECT d0_.id AS id0, d0_.discr AS discr1, d0_.price AS price2 FROM DDC513OfferItem d1_ INNER JOIN DDC513Item d0_ ON d1_.id = d0_.id LEFT JOIN DDC513Price d2_ ON d0_.price = d2_.id'),
  20. strtolower($q->getSQL())
  21. );
  22. }
  23. }
  24. /**
  25. * @Entity
  26. */
  27. class DDC513OfferItem extends DDC513Item
  28. {
  29. }
  30. /**
  31. * @Entity
  32. * @InheritanceType("JOINED")
  33. * @DiscriminatorColumn(name="discr", type="string")
  34. * @DiscriminatorMap({"item" = "DDC513Item", "offerItem" = "DDC513OfferItem"})
  35. */
  36. class DDC513Item
  37. {
  38. /**
  39. * @Id
  40. * @Column(type="integer")
  41. * @GeneratedValue(strategy="AUTO")
  42. */
  43. public $id;
  44. /**
  45. * @OneToOne(targetEntity="DDC513Price", cascade={"remove","persist"})
  46. * @JoinColumn(name="price", referencedColumnName="id")
  47. */
  48. public $price;
  49. }
  50. /**
  51. * @Entity
  52. */
  53. class DDC513Price {
  54. /**
  55. * @Id
  56. * @Column(type="integer")
  57. * @GeneratedValue(strategy="AUTO")
  58. */
  59. public $id;
  60. /** @Column(type="string") */
  61. public $data;
  62. }