Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC1040Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 use Doctrine\Common\Collections\ArrayCollection;
6 use Doctrine\Tests\Models\CMS\CmsArticle;
7 use Doctrine\Tests\Models\CMS\CmsUser;
8 require_once __DIR__ . '/../../../TestInit.php';
9
10 /**
11  * @group DDC-1040
12  */
13 class DDC1040Test extends \Doctrine\Tests\OrmFunctionalTestCase
14 {
15     public function setUp()
16     {
17         $this->useModelSet('cms');
18         parent::setUp();
19     }
20
21     public function testReuseNamedEntityParameter()
22     {
23         $user = new CmsUser();
24         $user->name = "John Galt";
25         $user->username = "jgalt";
26         $user->status = "inactive";
27
28         $article = new CmsArticle();
29         $article->topic = "This is John Galt speaking!";
30         $article->text = "Yadda Yadda!";
31         $article->setAuthor($user);
32
33         $this->_em->persist($user);
34         $this->_em->persist($article);
35         $this->_em->flush();
36
37         $dql = "SELECT a FROM Doctrine\Tests\Models\CMS\CmsArticle a WHERE a.user = :author";
38         $this->_em->createQuery($dql)
39                   ->setParameter('author', $user)
40                   ->getResult();
41
42         $dql = "SELECT a FROM Doctrine\Tests\Models\CMS\CmsArticle a WHERE a.user = :author AND a.user = :author";
43         $this->_em->createQuery($dql)
44                   ->setParameter('author', $user)
45                   ->getResult();
46
47         $dql = "SELECT a FROM Doctrine\Tests\Models\CMS\CmsArticle a WHERE a.topic = :topic AND a.user = :author AND a.user = :author";
48         $farticle = $this->_em->createQuery($dql)
49                   ->setParameter('author', $user)
50                   ->setParameter('topic', 'This is John Galt speaking!')
51                   ->getSingleResult();
52
53         $this->assertSame($article, $farticle);
54     }
55
56     public function testUseMultiplePositionalParameters()
57     {
58         $user = new CmsUser();
59         $user->name = "John Galt";
60         $user->username = "jgalt";
61         $user->status = "inactive";
62
63         $article = new CmsArticle();
64         $article->topic = "This is John Galt speaking!";
65         $article->text = "Yadda Yadda!";
66         $article->setAuthor($user);
67
68         $this->_em->persist($user);
69         $this->_em->persist($article);
70         $this->_em->flush();
71
72         $dql = "SELECT a FROM Doctrine\Tests\Models\CMS\CmsArticle a WHERE a.topic = ?1 AND a.user = ?2 AND a.user = ?3";
73         $farticle = $this->_em->createQuery($dql)
74                   ->setParameter(1, 'This is John Galt speaking!')
75                   ->setParameter(2, $user)
76                   ->setParameter(3, $user)
77                   ->getSingleResult();
78
79         $this->assertSame($article, $farticle);
80     }
81 }