Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC657Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 require_once __DIR__ . '/../../../TestInit.php';
6
7 use Doctrine\Tests\Models\Generic\DateTimeModel;
8
9 /**
10  * @group DDC-657
11  */
12 class DDC657Test extends \Doctrine\Tests\OrmFunctionalTestCase
13 {
14     const NS = 'Doctrine\Tests\Models\Generic';
15
16     protected function setUp()
17     {
18         $this->useModelSet('generic');
19         parent::setUp();
20
21         $this->loadFixtures();
22     }
23
24     public function testEntitySingleResult()
25     {
26         $query      = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d');
27         $datetime   = $query->setMaxResults(1)->getSingleResult();
28
29         $this->assertInstanceOf('Doctrine\Tests\Models\Generic\DateTimeModel', $datetime);
30
31         $this->assertInstanceOf('DateTime', $datetime->datetime);
32         $this->assertInstanceOf('DateTime', $datetime->time);
33         $this->assertInstanceOf('DateTime', $datetime->date);
34     }
35
36     public function testScalarResult()
37     {
38         $query      = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
39         $result     = $query->getScalarResult();
40
41         $this->assertCount(2,$result);
42
43         $this->assertContains('11:11:11', $result[0]['time']);
44         $this->assertContains('2010-01-01', $result[0]['date']);
45         $this->assertContains('2010-01-01 11:11:11', $result[0]['datetime']);
46
47         $this->assertContains('12:12:12', $result[1]['time']);
48         $this->assertContains('2010-02-02', $result[1]['date']);
49         $this->assertContains('2010-02-02 12:12:12', $result[1]['datetime']);
50     }
51
52     public function testaTicketEntityArrayResult()
53     {
54         $query      = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
55         $result     = $query->getArrayResult();
56
57         $this->assertCount(2,$result);
58
59         $this->assertInstanceOf('DateTime', $result[0]['datetime']);
60         $this->assertInstanceOf('DateTime', $result[0]['time']);
61         $this->assertInstanceOf('DateTime', $result[0]['date']);
62
63         $this->assertInstanceOf('DateTime', $result[1]['datetime']);
64         $this->assertInstanceOf('DateTime', $result[1]['time']);
65         $this->assertInstanceOf('DateTime', $result[1]['date']);
66     }
67
68     public function testTicketSingleResult()
69     {
70         $query      = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
71         $datetime   = $query->setMaxResults(1)->getSingleResult();
72
73         $this->assertTrue(is_array($datetime));
74
75         $this->assertInstanceOf('DateTime', $datetime['datetime']);
76         $this->assertInstanceOf('DateTime', $datetime['time']);
77         $this->assertInstanceOf('DateTime', $datetime['date']);
78     }
79
80     public function testTicketResult()
81     {
82         $query      = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
83         $result     = $query->getResult();
84
85         $this->assertCount(2,$result);
86
87         $this->assertInstanceOf('DateTime', $result[0]['time']);
88         $this->assertInstanceOf('DateTime', $result[0]['date']);
89         $this->assertInstanceOf('DateTime', $result[0]['datetime']);
90
91         $this->assertEquals('2010-01-01 11:11:11', $result[0]['datetime']->format('Y-m-d G:i:s'));
92
93         $this->assertInstanceOf('DateTime', $result[1]['time']);
94         $this->assertInstanceOf('DateTime', $result[1]['date']);
95         $this->assertInstanceOf('DateTime', $result[1]['datetime']);
96
97         $this->assertEquals('2010-02-02 12:12:12', $result[1]['datetime']->format('Y-m-d G:i:s'));
98     }
99
100     public function loadFixtures()
101     {
102         $timezone           = new \DateTimeZone('America/Sao_Paulo');
103
104         $dateTime1          = new DateTimeModel();
105         $dateTime2          = new DateTimeModel();
106
107         $dateTime1->date    = new \DateTime('2010-01-01', $timezone);
108         $dateTime1->time    = new \DateTime('2010-01-01 11:11:11', $timezone);
109         $dateTime1->datetime= new \DateTime('2010-01-01 11:11:11', $timezone);
110
111         $dateTime2->date    = new \DateTime('2010-02-02', $timezone);
112         $dateTime2->time    = new \DateTime('2010-02-02 12:12:12', $timezone);
113         $dateTime2->datetime= new \DateTime('2010-02-02 12:12:12', $timezone);
114
115         $this->_em->persist($dateTime1);
116         $this->_em->persist($dateTime2);
117
118         $this->_em->flush();
119     }
120 }