Ejemplo n.º 1
0
 public function testManyReferenceWithAddToSetStrategy()
 {
     $user = new \Documents\User();
     $user->addUniqueGroup($group1 = new Group('Group 1'));
     $user->addUniqueGroup($group1);
     $user->addUniqueGroup(new Group('Group 2'));
     $this->dm->persist($user);
     $this->dm->flush();
     $groups = $user->getUniqueGroups();
     $this->assertEquals(3, count($groups));
     $this->assertTrue($groups instanceof PersistentCollection);
     $this->assertTrue($groups[0]->getId() !== '');
     $this->assertTrue($groups[1]->getId() !== '');
     $this->dm->clear();
     $qb = $this->dm->createQueryBuilder('Documents\\User')->field('id')->equals($user->getId());
     $query = $qb->getQuery();
     $user2 = $query->getSingleResult();
     $groups = $user2->getUniqueGroups();
     $this->assertFalse($groups->isInitialized());
     $groups->count();
     $this->assertFalse($groups->isInitialized());
     $groups->isEmpty();
     $this->assertFalse($groups->isInitialized());
     $this->assertEquals(2, count($groups));
     $this->assertTrue($groups instanceof PersistentCollection);
     $this->assertTrue($groups[0] instanceof Group);
     $this->assertTrue($groups[1] instanceof Group);
     $this->assertTrue($groups->isInitialized());
     unset($groups[0]);
     $groups[1]->setName('test');
     $this->dm->flush();
     $this->dm->clear();
     $qb = $this->dm->createQueryBuilder('Documents\\User')->field('id')->equals($user->getId());
     $query = $qb->getQuery();
     $user3 = $query->getSingleResult();
     $groups = $user3->getUniqueGroups();
     $this->assertEquals('test', $groups[0]->getName());
     $this->assertEquals(1, count($groups));
 }