Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC448Test.php
1 <?php
2 namespace Doctrine\Tests\ORM\Functional\Ticket;
3
4 require_once __DIR__ . '/../../../TestInit.php';
5
6 class DDC448Test extends \Doctrine\Tests\OrmFunctionalTestCase
7 {
8     protected function setUp()
9     {
10         parent::setUp();
11         $this->_schemaTool->createSchema(array(
12             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448MainTable'),
13             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448ConnectedClass'),
14             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448SubTable'),
15         ));
16     }
17
18     public function testIssue()
19     {
20         $q = $this->_em->createQuery("select b from ".__NAMESPACE__."\\DDC448SubTable b where b.connectedClassId = ?1");
21         $this->assertEquals(
22             strtolower('SELECT d0_.id AS id0, d0_.discr AS discr1, d0_.connectedClassId AS connectedClassId2 FROM SubTable s1_ INNER JOIN DDC448MainTable d0_ ON s1_.id = d0_.id WHERE d0_.connectedClassId = ?'),
23             strtolower($q->getSQL())
24         );
25     }
26 }
27
28 /**
29  * @Entity
30  * @InheritanceType("JOINED")
31  * @DiscriminatorColumn(name="discr", type="smallint")
32  * @DiscriminatorMap({
33  *     "0" = "DDC448MainTable",
34  *     "1" = "DDC448SubTable"
35  * })
36  */
37 class DDC448MainTable
38 {
39     /**
40      * @Id
41      * @Column(name="id", type="integer")
42      * @GeneratedValue(strategy="AUTO")
43      */
44     private $id;
45
46     /**
47      * @ManyToOne(targetEntity="DDC448ConnectedClass",  cascade={"all"}, fetch="EAGER")
48      * @JoinColumn(name="connectedClassId", referencedColumnName="id", onDelete="CASCADE", nullable=true)
49      */
50     private $connectedClassId;
51 }
52
53 /**
54  * @Entity
55  * @Table(name="connectedClass")
56  * @HasLifecycleCallbacks
57  */
58 class DDC448ConnectedClass
59 {
60     /**
61      * @Id
62      * @Column(name="id", type="integer")
63      * @GeneratedValue(strategy="AUTO")
64      */
65     protected $id; // connected with DDC448MainTable
66 }
67
68 /**
69  * @Entity
70  * @Table(name="SubTable")
71  */
72 class DDC448SubTable extends DDC448MainTable
73 {
74 }