Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC656Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 use DateTime;
6
7 require_once __DIR__ . '/../../../TestInit.php';
8
9 class DDC656Test extends \Doctrine\Tests\OrmFunctionalTestCase
10 {
11     protected function setUp()
12     {
13         parent::setUp();
14         try {
15             $this->_schemaTool->createSchema(array(
16                 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC656Entity')
17             ));
18         } catch(\Exception $e) {
19
20         }
21     }
22
23     public function testRecomputeSingleEntityChangeSet_PreservesFieldOrder()
24     {
25         $entity = new DDC656Entity();
26         $entity->setName('test1');
27         $entity->setType('type1');
28         $this->_em->persist($entity);
29
30         $this->_em->getUnitOfWork()->computeChangeSet($this->_em->getClassMetadata(get_class($entity)), $entity);
31         $data1 = $this->_em->getUnitOfWork()->getEntityChangeset($entity);
32         $entity->setType('type2');
33         $this->_em->getUnitOfWork()->recomputeSingleEntityChangeSet($this->_em->getClassMetadata(get_class($entity)), $entity);
34         $data2 = $this->_em->getUnitOfWork()->getEntityChangeset($entity);
35
36         $this->assertEquals(array_keys($data1), array_keys($data2));
37
38         $this->_em->flush();
39         $this->_em->clear();
40
41         $persistedEntity = $this->_em->find(get_class($entity), $entity->specificationId);
42         $this->assertEquals('type2', $persistedEntity->getType());
43         $this->assertEquals('test1', $persistedEntity->getName());
44     }
45 }
46
47 /**
48  * @Entity
49  */
50 class DDC656Entity
51 {
52     /**
53      * @Column(type="string")
54      */
55     public $name;
56
57     /**
58      * @Column(type="string")
59      */
60     public $type;
61
62     /**
63      * @Id @Column(type="integer") @GeneratedValue
64      */
65     public $specificationId;
66
67     public function getName() {
68         return $this->name;
69     }
70
71     public function setName($name) {
72         $this->name = $name;
73     }
74
75     public function getType() {
76         return $this->type;
77     }
78
79     public function setType($type) {
80         $this->type = $type;
81     }
82 }