3 namespace Doctrine\Tests\ORM\Functional\Ticket;
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';
13 class DDC1040Test extends \Doctrine\Tests\OrmFunctionalTestCase
15 public function setUp()
17 $this->useModelSet('cms');
21 public function testReuseNamedEntityParameter()
23 $user = new CmsUser();
24 $user->name = "John Galt";
25 $user->username = "jgalt";
26 $user->status = "inactive";
28 $article = new CmsArticle();
29 $article->topic = "This is John Galt speaking!";
30 $article->text = "Yadda Yadda!";
31 $article->setAuthor($user);
33 $this->_em->persist($user);
34 $this->_em->persist($article);
37 $dql = "SELECT a FROM Doctrine\Tests\Models\CMS\CmsArticle a WHERE a.user = :author";
38 $this->_em->createQuery($dql)
39 ->setParameter('author', $user)
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)
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!')
53 $this->assertSame($article, $farticle);
56 public function testUseMultiplePositionalParameters()
58 $user = new CmsUser();
59 $user->name = "John Galt";
60 $user->username = "jgalt";
61 $user->status = "inactive";
63 $article = new CmsArticle();
64 $article->topic = "This is John Galt speaking!";
65 $article->text = "Yadda Yadda!";
66 $article->setAuthor($user);
68 $this->_em->persist($user);
69 $this->_em->persist($article);
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)
79 $this->assertSame($article, $farticle);