PersistentObjectTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional;
  3. use Doctrine\Common\Persistence\PersistentObject;
  4. /**
  5. * Test that Doctrine ORM correctly works with the ObjectManagerAware and PersistentObject
  6. * classes from Common.
  7. *
  8. * @group DDC-1448
  9. */
  10. class PersistentObjectTest extends \Doctrine\Tests\OrmFunctionalTestCase
  11. {
  12. protected function setUp()
  13. {
  14. parent::setUp();
  15. try {
  16. $this->_schemaTool->createSchema(array(
  17. $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\PersistentEntity'),
  18. ));
  19. } catch (\Exception $e) {
  20. }
  21. PersistentObject::setObjectManager($this->_em);
  22. }
  23. public function testPersist()
  24. {
  25. $entity = new PersistentEntity();
  26. $entity->setName("test");
  27. $this->_em->persist($entity);
  28. $this->_em->flush();
  29. }
  30. public function testFind()
  31. {
  32. $entity = new PersistentEntity();
  33. $entity->setName("test");
  34. $this->_em->persist($entity);
  35. $this->_em->flush();
  36. $this->_em->clear();
  37. $entity = $this->_em->find(__NAMESPACE__ . '\PersistentEntity', $entity->getId());
  38. $this->assertEquals('test', $entity->getName());
  39. $entity->setName('foobar');
  40. $this->_em->flush();
  41. }
  42. public function testGetReference()
  43. {
  44. $entity = new PersistentEntity();
  45. $entity->setName("test");
  46. $this->_em->persist($entity);
  47. $this->_em->flush();
  48. $this->_em->clear();
  49. $entity = $this->_em->getReference(__NAMESPACE__ . '\PersistentEntity', $entity->getId());
  50. $this->assertEquals('test', $entity->getName());
  51. }
  52. public function testSetAssociation()
  53. {
  54. $entity = new PersistentEntity();
  55. $entity->setName("test");
  56. $entity->setParent($entity);
  57. $this->_em->persist($entity);
  58. $this->_em->flush();
  59. $this->_em->clear();
  60. $entity = $this->_em->getReference(__NAMESPACE__ . '\PersistentEntity', $entity->getId());
  61. $this->assertSame($entity, $entity->getParent());
  62. }
  63. }
  64. /**
  65. * @Entity
  66. */
  67. class PersistentEntity extends PersistentObject
  68. {
  69. /**
  70. * @Id @Column(type="integer") @GeneratedValue
  71. * @var int
  72. */
  73. protected $id;
  74. /**
  75. * @Column(type="string")
  76. * @var string
  77. */
  78. protected $name;
  79. /**
  80. * @ManyToOne(targetEntity="PersistentEntity")
  81. * @var PersistentEntity
  82. */
  83. protected $parent;
  84. }