3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Common\Collections\ArrayCollection;
6 use Doctrine\Tests\Models\CMS\CmsUser;
7 use Doctrine\Tests\Models\CMS\CmsGroup;
9 require_once __DIR__ . '/../../../TestInit.php';
11 class DDC849Test extends \Doctrine\Tests\OrmFunctionalTestCase
17 public function setUp()
19 $this->useModelSet('cms');
22 $this->user = new CmsUser();
23 $this->user->username = "beberlei";
24 $this->user->name = "Benjamin";
25 $this->user->status = "active";
27 $this->group1 = new CmsGroup();
28 $this->group1->name = "Group 1";
29 $this->group2 = new CmsGroup();
30 $this->group2->name = "Group 2";
32 $this->user->addGroup($this->group1);
33 $this->user->addGroup($this->group2);
35 $this->_em->persist($this->user);
36 $this->_em->persist($this->group1);
37 $this->_em->persist($this->group2);
42 $this->user = $this->_em->find('Doctrine\Tests\Models\CMS\CmsUser', $this->user->getId());
45 public function testRemoveContains()
47 $group1 = $this->user->groups[0];
48 $group2 = $this->user->groups[1];
50 $this->assertTrue($this->user->groups->contains($group1));
51 $this->assertTrue($this->user->groups->contains($group2));
53 $this->user->groups->removeElement($group1);
54 $this->user->groups->remove(1);
56 $this->assertFalse($this->user->groups->contains($group1));
57 $this->assertFalse($this->user->groups->contains($group2));
60 public function testClearCount()
62 $this->user->addGroup(new CmsGroup);
63 $this->assertEquals(3, count($this->user->groups));
65 $this->user->groups->clear();
67 $this->assertEquals(0, $this->user->groups->count());
68 $this->assertEquals(0, count($this->user->groups));
71 public function testClearContains()
73 $group1 = $this->user->groups[0];
74 $group2 = $this->user->groups[1];
76 $this->assertTrue($this->user->groups->contains($group1));
77 $this->assertTrue($this->user->groups->contains($group2));
79 $this->user->groups->clear();
81 $this->assertFalse($this->user->groups->contains($group1));
82 $this->assertFalse($this->user->groups->contains($group2));