DDC1276Test.php 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Tests\Models\CMS\CmsUser;
  5. use Doctrine\Tests\Models\CMS\CmsGroup;
  6. require_once __DIR__ . '/../../../TestInit.php';
  7. /**
  8. * @group DDC-1276
  9. */
  10. class DDC1276Test extends \Doctrine\Tests\OrmFunctionalTestCase
  11. {
  12. public function setUp()
  13. {
  14. $this->useModelSet('cms');
  15. parent::setUp();
  16. }
  17. public function testIssue()
  18. {
  19. $user = new CmsUser();
  20. $user->name = "Benjamin";
  21. $user->username = "beberlei";
  22. $user->status = "active";
  23. $this->_em->persist($user);
  24. for ($i = 0; $i < 2; $i++) {
  25. $group = new CmsGroup();
  26. $group->name = "group".$i;
  27. $user->groups[] = $group;
  28. $this->_em->persist($group);
  29. }
  30. $this->_em->flush();
  31. $this->_em->clear();
  32. $user = $this->_em->find('Doctrine\Tests\Models\CMS\CmsUser', $user->id);
  33. $cloned = clone $user;
  34. $this->assertSame($user->groups, $cloned->groups);
  35. $this->assertEquals(2, count($user->groups));
  36. $this->_em->merge($cloned);
  37. $this->assertEquals(2, count($user->groups));
  38. $this->_em->flush();
  39. }
  40. }