Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC1151Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 require_once __DIR__ . '/../../../TestInit.php';
6
7 /**
8  * @group DDC-1151
9  */
10 class DDC1151Test extends \Doctrine\Tests\OrmFunctionalTestCase
11 {
12     public function testQuoteForeignKey()
13     {
14         if ($this->_em->getConnection()->getDatabasePlatform()->getName() != 'postgresql') {
15             $this->markTestSkipped("This test is useful for all databases, but designed only for postgresql.");
16         }
17
18         $sql = $this->_schemaTool->getCreateSchemaSql(array(
19             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1151User'),
20             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1151Group'),
21         ));
22
23         $this->assertEquals("CREATE TABLE \"User\" (id INT NOT NULL, PRIMARY KEY(id))", $sql[0]);
24         $this->assertEquals("CREATE TABLE ddc1151user_ddc1151group (ddc1151user_id INT NOT NULL, ddc1151group_id INT NOT NULL, PRIMARY KEY(ddc1151user_id, ddc1151group_id))", $sql[1]);
25         $this->assertEquals("CREATE INDEX IDX_88A3259AC5AD08A ON ddc1151user_ddc1151group (ddc1151user_id)", $sql[2]);
26         $this->assertEquals("CREATE INDEX IDX_88A32597357E0B1 ON ddc1151user_ddc1151group (ddc1151group_id)", $sql[3]);
27         $this->assertEquals("CREATE TABLE \"Group\" (id INT NOT NULL, PRIMARY KEY(id))", $sql[4]);
28         $this->assertEquals("CREATE SEQUENCE \"User_id_seq\" INCREMENT BY 1 MINVALUE 1 START 1", $sql[5]);
29         $this->assertEquals("CREATE SEQUENCE \"Group_id_seq\" INCREMENT BY 1 MINVALUE 1 START 1", $sql[6]);
30         $this->assertEquals("ALTER TABLE ddc1151user_ddc1151group ADD CONSTRAINT FK_88A3259AC5AD08A FOREIGN KEY (ddc1151user_id) REFERENCES \"User\" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE", $sql[7]);
31         $this->assertEquals("ALTER TABLE ddc1151user_ddc1151group ADD CONSTRAINT FK_88A32597357E0B1 FOREIGN KEY (ddc1151group_id) REFERENCES \"Group\" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE", $sql[8]);
32     }
33 }
34
35 /**
36  * @Entity
37  * @Table(name="`User`")
38  */
39 class DDC1151User
40 {
41     /** @Id @Column(type="integer") @GeneratedValue */
42     public $id;
43
44     /** @ManyToMany(targetEntity="DDC1151Group") */
45     public $groups;
46 }
47
48 /**
49  * @Entity
50  * @Table(name="`Group`")
51  */
52 class DDC1151Group
53 {
54     /** @Id @Column(type="integer") @GeneratedValue */
55     public $id;
56 }