DDC1404Test.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. require_once __DIR__ . '/../../../TestInit.php';
  4. /**
  5. * @group DDC-1404
  6. */
  7. class DDC1404Test extends \Doctrine\Tests\OrmFunctionalTestCase
  8. {
  9. protected function setUp()
  10. {
  11. parent::setUp();
  12. try {
  13. $this->_schemaTool->createSchema(array(
  14. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1404ParentEntity'),
  15. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1404ChildEntity'),
  16. ));
  17. $this->loadFixtures();
  18. } catch (Exception $exc) {
  19. }
  20. }
  21. public function testTicket()
  22. {
  23. $repository = $this->_em->getRepository(__NAMESPACE__ . '\DDC1404ChildEntity');
  24. $queryAll = $repository->createNamedQuery('all');
  25. $queryFirst = $repository->createNamedQuery('first');
  26. $querySecond = $repository->createNamedQuery('second');
  27. $this->assertEquals('SELECT p FROM Doctrine\Tests\ORM\Functional\Ticket\DDC1404ChildEntity p', $queryAll->getDQL());
  28. $this->assertEquals('SELECT p FROM Doctrine\Tests\ORM\Functional\Ticket\DDC1404ChildEntity p WHERE p.id = 1', $queryFirst->getDQL());
  29. $this->assertEquals('SELECT p FROM Doctrine\Tests\ORM\Functional\Ticket\DDC1404ChildEntity p WHERE p.id = 2', $querySecond->getDQL());
  30. $this->assertEquals(sizeof($queryAll->getResult()), 2);
  31. $this->assertEquals(sizeof($queryFirst->getResult()), 1);
  32. $this->assertEquals(sizeof($querySecond->getResult()), 1);
  33. }
  34. public function loadFixtures()
  35. {
  36. $c1 = new DDC1404ChildEntity("ChildEntity 1");
  37. $c2 = new DDC1404ChildEntity("ChildEntity 2");
  38. $this->_em->persist($c1);
  39. $this->_em->persist($c2);
  40. $this->_em->flush();
  41. }
  42. }
  43. /**
  44. * @MappedSuperclass
  45. *
  46. * @NamedQueries({
  47. * @NamedQuery(name="all", query="SELECT p FROM __CLASS__ p"),
  48. * @NamedQuery(name="first", query="SELECT p FROM __CLASS__ p WHERE p.id = 1"),
  49. * })
  50. */
  51. class DDC1404ParentEntity
  52. {
  53. /**
  54. * @Id
  55. * @Column(type="integer")
  56. * @GeneratedValue()
  57. */
  58. protected $id;
  59. /**
  60. * @return integer
  61. */
  62. public function getId()
  63. {
  64. return $this->id;
  65. }
  66. }
  67. /**
  68. * @Entity
  69. *
  70. * @NamedQueries({
  71. * @NamedQuery(name="first", query="SELECT p FROM __CLASS__ p WHERE p.id = 1"),
  72. * @NamedQuery(name="second", query="SELECT p FROM __CLASS__ p WHERE p.id = 2")
  73. * })
  74. */
  75. class DDC1404ChildEntity extends DDC1404ParentEntity
  76. {
  77. /**
  78. * @column(type="string")
  79. */
  80. private $name;
  81. /**
  82. * @param string $name
  83. */
  84. public function __construct($name)
  85. {
  86. $this->name = $name;
  87. }
  88. /**
  89. * @return string
  90. */
  91. public function getName()
  92. {
  93. return $this->name;
  94. }
  95. /**
  96. * @param string $name
  97. */
  98. public function setName($name)
  99. {
  100. $this->name = $name;
  101. }
  102. }