UnitOfWorkLifecycleTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional;
  3. use Doctrine\Tests\Models\CMS\CmsUser;
  4. class UnitOfWorkLifecycleTest extends \Doctrine\Tests\OrmFunctionalTestCase
  5. {
  6. protected function setUp()
  7. {
  8. $this->useModelSet('cms');
  9. parent::setUp();
  10. }
  11. public function testScheduleInsertManaged()
  12. {
  13. $user = new CmsUser();
  14. $user->username = "beberlei";
  15. $user->name = "Benjamin";
  16. $user->status = "active";
  17. $this->_em->persist($user);
  18. $this->_em->flush();
  19. $this->setExpectedException("Doctrine\ORM\ORMInvalidArgumentException", "A managed+dirty entity Doctrine\Tests\Models\CMS\CmsUser");
  20. $this->_em->getUnitOfWork()->scheduleForInsert($user);
  21. }
  22. public function testScheduleInsertDeleted()
  23. {
  24. $user = new CmsUser();
  25. $user->username = "beberlei";
  26. $user->name = "Benjamin";
  27. $user->status = "active";
  28. $this->_em->persist($user);
  29. $this->_em->flush();
  30. $this->_em->remove($user);
  31. $this->setExpectedException("Doctrine\ORM\ORMInvalidArgumentException", "Removed entity Doctrine\Tests\Models\CMS\CmsUser");
  32. $this->_em->getUnitOfWork()->scheduleForInsert($user);
  33. }
  34. public function testScheduleInsertTwice()
  35. {
  36. $user = new CmsUser();
  37. $user->username = "beberlei";
  38. $user->name = "Benjamin";
  39. $user->status = "active";
  40. $this->_em->getUnitOfWork()->scheduleForInsert($user);
  41. $this->setExpectedException("Doctrine\ORM\ORMInvalidArgumentException", "Entity Doctrine\Tests\Models\CMS\CmsUser");
  42. $this->_em->getUnitOfWork()->scheduleForInsert($user);
  43. }
  44. public function testAddToIdentityMapWithoutIdentity()
  45. {
  46. $user = new CmsUser();
  47. $this->setExpectedException("Doctrine\ORM\ORMInvalidArgumentException", "The given entity of type 'Doctrine\Tests\Models\CMS\CmsUser' (Doctrine\Tests\Models\CMS\CmsUser@");
  48. $this->_em->getUnitOfWork()->registerManaged($user, array(), array());
  49. }
  50. public function testMarkReadOnlyNonManaged()
  51. {
  52. $user = new CmsUser();
  53. $this->setExpectedException("Doctrine\ORM\ORMInvalidArgumentException", "Only managed entities can be marked or checked as read only. But Doctrine\Tests\Models\CMS\CmsUser@");
  54. $this->_em->getUnitOfWork()->markReadOnly($user);
  55. }
  56. }