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