3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Tests\Models\Quote\Group;
6 use Doctrine\Tests\Models\Quote\User;
12 class DDC1885Test extends \Doctrine\Tests\OrmFunctionalTestCase
16 * @var \Doctrine\Tests\Models\Quote\User
20 protected function setUp()
25 $this->_schemaTool->createSchema(array(
26 $this->_em->getClassMetadata('Doctrine\Tests\Models\Quote\User'),
27 $this->_em->getClassMetadata('Doctrine\Tests\Models\Quote\Group'),
28 $this->_em->getClassMetadata('Doctrine\Tests\Models\Quote\Address'),
30 } catch(\Exception $e) {
34 $user->name = "FabioBatSilva";
35 $user->email = "fabio.bat.silva@gmail.com";
36 $user->groups[] = new Group('G 1');
37 $user->groups[] = new Group('G 2');
41 $this->_em->persist($user);
47 public function testCreateRetreaveUpdateDelete()
50 $g1 = $user->getGroups()->get(0);
51 $g2 = $user->getGroups()->get(1);
58 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
60 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
61 $this->assertEquals('FabioBatSilva', $user->name);
62 $this->assertEquals($u1Id, $user->id);
64 $this->assertCount(2, $user->groups);
66 $g1 = $user->getGroups()->get(0);
67 $g2 = $user->getGroups()->get(1);
69 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $g1);
70 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $g2);
76 $this->_em->persist($user);
80 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
82 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
83 $this->assertEquals('FabioBatSilva', $user->name);
84 $this->assertEquals($u1Id, $user->id);
87 $this->_em->remove($user);
92 $this->assertNull($this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id));
93 $this->assertNull($this->_em->find('Doctrine\Tests\Models\Quote\Group', $g1Id));
94 $this->assertNull($this->_em->find('Doctrine\Tests\Models\Quote\Group', $g2Id));
97 public function testRemoveItem()
101 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
103 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
104 $this->assertEquals('FabioBatSilva', $user->name);
105 $this->assertEquals($u1Id, $user->id);
107 $this->assertCount(2, $user->groups);
108 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(0));
109 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(1));
111 $user->getGroups()->remove(0);
114 $this->_em->persist($user);
118 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
120 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
121 $this->assertEquals('FabioBatSilva', $user->name);
122 $this->assertEquals($u1Id, $user->id);
124 $this->assertCount(1, $user->getGroups());
127 public function testClearAll()
131 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
133 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
134 $this->assertEquals('FabioBatSilva', $user->name);
135 $this->assertEquals($u1Id, $user->id);
137 $this->assertCount(2, $user->groups);
138 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(0));
139 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(1));
141 $user->getGroups()->clear();
144 $this->_em->persist($user);
148 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
150 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
151 $this->assertEquals('FabioBatSilva', $user->name);
152 $this->assertEquals($u1Id, $user->id);
154 $this->assertCount(0, $user->getGroups());
157 public function testCountExtraLazy()
161 $user = $this->_em->find('Doctrine\Tests\Models\Quote\User', $u1Id);
163 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\User', $user);
164 $this->assertEquals('FabioBatSilva', $user->name);
165 $this->assertEquals($u1Id, $user->id);
167 $this->assertCount(0, $user->extraLazyGroups);
168 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(0));
169 $this->assertInstanceOf('Doctrine\Tests\Models\Quote\Group', $user->getGroups()->get(1));