DDC1778Test.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. use Doctrine\Tests\Models\CMS\CmsUser;
  4. use Doctrine\Tests\Models\CMS\CmsPhonenumber;
  5. /**
  6. * @group DDC-1778
  7. */
  8. class DDC1778Test extends \Doctrine\Tests\OrmFunctionalTestCase
  9. {
  10. private $user;
  11. private $phone;
  12. public function setUp()
  13. {
  14. $this->useModelSet('cms');
  15. parent::setUp();
  16. $this->user = new CmsUser();
  17. $this->user->username = "beberlei";
  18. $this->user->name = "Benjamin";
  19. $this->user->status = "active";
  20. $this->phone = new CmsPhoneNumber();
  21. $this->phone->phonenumber = '0123456789';
  22. $this->user->addPhoneNumber($this->phone);
  23. $this->_em->persist($this->user);
  24. $this->_em->persist($this->phone);
  25. $this->_em->flush();
  26. $this->_em->clear();
  27. $this->user = $this->_em->find('Doctrine\\Tests\\Models\\CMS\\CmsUser', $this->user->getId());
  28. $this->phone = $this->_em->find('Doctrine\\Tests\\Models\\CMS\\CmsPhonenumber', $this->phone->phonenumber);
  29. }
  30. public function testClear()
  31. {
  32. $clonedNumbers = clone $this->user->getPhonenumbers();
  33. $clonedNumbers->clear();
  34. $this->_em->flush();
  35. $this->_em->clear();
  36. $this->user = $this->_em->find('Doctrine\\Tests\\Models\\CMS\\CmsUser', $this->user->getId());
  37. $this->assertCount(1, $this->user->getPhonenumbers());
  38. }
  39. public function testRemove()
  40. {
  41. $clonedNumbers = clone $this->user->getPhonenumbers();
  42. $clonedNumbers->remove(0);
  43. $this->_em->flush();
  44. $this->_em->clear();
  45. $this->user = $this->_em->find('Doctrine\\Tests\\Models\\CMS\\CmsUser', $this->user->getId());
  46. $this->assertCount(1, $this->user->getPhonenumbers());
  47. }
  48. public function testRemoveElement()
  49. {
  50. $clonedNumbers = clone $this->user->getPhonenumbers();
  51. $clonedNumbers->removeElement($this->phone);
  52. $this->_em->flush();
  53. $this->_em->clear();
  54. $this->user = $this->_em->find('Doctrine\\Tests\\Models\\CMS\\CmsUser', $this->user->getId());
  55. $this->assertCount(1, $this->user->getPhonenumbers());
  56. }
  57. }