Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC698Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 use DateTime;
6
7 require_once __DIR__ . '/../../../TestInit.php';
8
9 class DDC698Test extends \Doctrine\Tests\OrmFunctionalTestCase
10 {
11     protected function setUp()
12     {
13         parent::setUp();
14         try {
15             $this->_schemaTool->createSchema(array(
16                 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC698Role'),
17                 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC698Privilege')
18             ));
19         } catch(\Exception $e) {
20
21         }
22     }
23
24     public function testTicket()
25     {
26         $qb = $this->_em->createQueryBuilder();
27         $qb->select('p', 'r')
28                    ->from(__NAMESPACE__ .  '\DDC698Privilege', 'p')
29                    ->leftJoin('p.roles', 'r');
30
31         $sql = $qb->getQuery()->getSQL();
32
33         $this->assertEquals(
34             strtolower('SELECT p0_.privilegeID AS privilegeID0, p0_.name AS name1, r1_.roleID AS roleID2, r1_.name AS name3, r1_.shortName AS shortName4 FROM Privileges p0_ LEFT JOIN RolePrivileges r2_ ON p0_.privilegeID = r2_.privilegeID LEFT JOIN Roles r1_ ON r1_.roleID = r2_.roleID'),
35             strtolower($sql)
36         );
37     }
38 }
39
40 /**
41  *
42  * @Table(name="Roles")
43  * @Entity
44  */
45 class DDC698Role
46 {
47         /**
48          *  @Id @Column(name="roleID", type="integer")
49          *  @GeneratedValue(strategy="AUTO")
50          *
51          */
52         protected $roleID;
53
54         /**
55          * @Column(name="name", type="string", length=45)
56          *
57          *
58          */
59         protected $name;
60
61         /**
62          * @Column(name="shortName", type="string", length=45)
63          *
64          *
65          */
66         protected $shortName;
67
68
69
70         /**
71          * @ManyToMany(targetEntity="DDC698Privilege", inversedBy="roles")
72          * @JoinTable(name="RolePrivileges",
73          *     joinColumns={@JoinColumn(name="roleID", referencedColumnName="roleID")},
74          *     inverseJoinColumns={@JoinColumn(name="privilegeID", referencedColumnName="privilegeID")}
75          * )
76          */
77         protected $privilege;
78
79 }
80
81
82 /**
83  *
84  * @Table(name="Privileges")
85  * @Entity()
86  */
87 class DDC698Privilege
88 {
89         /**
90          *  @Id  @Column(name="privilegeID", type="integer")
91          *  @GeneratedValue(strategy="AUTO")
92          *
93          */
94         protected $privilegeID;
95
96         /**
97          * @Column(name="name", type="string", length=45)
98          *
99          *
100          */
101         protected $name;
102
103         /**
104      * @ManyToMany(targetEntity="DDC698Role", mappedBy="privilege")
105      */
106         protected $roles;
107 }