Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC493Test.php
1 <?php
2 namespace Doctrine\Tests\ORM\Functional\Ticket;
3
4 require_once __DIR__ . '/../../../TestInit.php';
5
6 class DDC493Test extends \Doctrine\Tests\OrmFunctionalTestCase
7 {
8     protected function setUp()
9     {
10         parent::setUp();
11         $this->_schemaTool->createSchema(array(
12             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC493Customer'),
13             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC493Distributor'),
14             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC493Contact')
15         ));
16     }
17
18     public function testIssue()
19     {
20         $q = $this->_em->createQuery("select u, c.data from ".__NAMESPACE__."\\DDC493Distributor u JOIN u.contact c");
21         $this->assertEquals(
22             strtolower('SELECT d0_.id AS id0, d1_.data AS data1, d0_.discr AS discr2, d0_.contact AS contact3 FROM DDC493Distributor d2_ INNER JOIN DDC493Customer d0_ ON d2_.id = d0_.id INNER JOIN DDC493Contact d1_ ON d0_.contact = d1_.id'),
23             strtolower($q->getSQL())
24         );
25     }
26 }
27
28 /**
29  * @Entity
30  * @InheritanceType("JOINED")
31  * @DiscriminatorColumn(name="discr", type="string")
32  * @DiscriminatorMap({"distributor" = "DDC493Distributor", "customer" = "DDC493Customer"})
33  */
34 class DDC493Customer {
35     /**
36      * @Id
37      * @Column(type="integer")
38      * @GeneratedValue(strategy="AUTO")
39      */
40     public $id;
41     /**
42      * @OneToOne(targetEntity="DDC493Contact", cascade={"remove","persist"})
43      * @JoinColumn(name="contact", referencedColumnName="id")
44      */
45     public $contact;
46
47 }
48
49 /**
50  * @Entity
51  */
52 class DDC493Distributor extends DDC493Customer {
53 }
54
55 /**
56  * @Entity
57   */
58 class DDC493Contact
59 {
60     /**
61      * @Id
62      * @Column(type="integer")
63      * @GeneratedValue(strategy="AUTO")
64      */
65     public $id;
66     /** @Column(type="string") */
67     public $data;
68 }
69
70
71
72