Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC444Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 require_once __DIR__ . '/../../../TestInit.php';
6
7 class DDC444Test extends \Doctrine\Tests\OrmFunctionalTestCase
8 {
9     public function setUp()
10     {
11         parent::setUp();
12         //$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
13         $this->_schemaTool->createSchema(array(
14             $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC444User'),
15         ));
16     }
17
18     public function testExplicitPolicy()
19     {
20         $classname = __NAMESPACE__ . "\DDC444User";
21
22         $u = new $classname;
23         $u->name = "Initial value";
24
25         $this->_em->persist($u);
26         $this->_em->flush();
27         $this->_em->clear();
28
29         $q = $this->_em->createQuery("SELECT u FROM $classname u");
30         $u = $q->getSingleResult();
31         $this->assertEquals("Initial value", $u->name);
32
33         $u->name = "Modified value";
34
35         // This should be NOOP as the change hasn't been persisted
36         $this->_em->flush();
37         $this->_em->clear();
38
39
40         $u = $this->_em->createQuery("SELECT u FROM $classname u");
41         $u = $q->getSingleResult();
42
43         $this->assertEquals("Initial value", $u->name);
44
45
46         $u->name = "Modified value";
47         $this->_em->persist($u);
48         // Now we however persisted it, and this should have updated our friend
49         $this->_em->flush();
50
51         $q = $this->_em->createQuery("SELECT u FROM $classname u");
52         $u = $q->getSingleResult();
53
54         $this->assertEquals("Modified value", $u->name);
55     }
56 }
57
58
59 /**
60  * @Entity @Table(name="ddc444")
61  * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")
62  */
63 class DDC444User
64 {
65     /**
66      * @Id @Column(name="id", type="integer")
67      * @GeneratedValue(strategy="AUTO")
68      */
69     public $id;
70
71     /**
72      * @Column(name="name", type="string")
73      */
74     public $name;
75 }
76
77