3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 require_once __DIR__ . '/../../../TestInit.php';
7 use Doctrine\Tests\Models\Generic\DateTimeModel;
12 class DDC657Test extends \Doctrine\Tests\OrmFunctionalTestCase
14 const NS = 'Doctrine\Tests\Models\Generic';
16 protected function setUp()
18 $this->useModelSet('generic');
21 $this->loadFixtures();
24 public function testEntitySingleResult()
26 $query = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d');
27 $datetime = $query->setMaxResults(1)->getSingleResult();
29 $this->assertInstanceOf('Doctrine\Tests\Models\Generic\DateTimeModel', $datetime);
31 $this->assertInstanceOf('DateTime', $datetime->datetime);
32 $this->assertInstanceOf('DateTime', $datetime->time);
33 $this->assertInstanceOf('DateTime', $datetime->date);
36 public function testScalarResult()
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();
41 $this->assertCount(2,$result);
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']);
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']);
52 public function testaTicketEntityArrayResult()
54 $query = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
55 $result = $query->getArrayResult();
57 $this->assertCount(2,$result);
59 $this->assertInstanceOf('DateTime', $result[0]['datetime']);
60 $this->assertInstanceOf('DateTime', $result[0]['time']);
61 $this->assertInstanceOf('DateTime', $result[0]['date']);
63 $this->assertInstanceOf('DateTime', $result[1]['datetime']);
64 $this->assertInstanceOf('DateTime', $result[1]['time']);
65 $this->assertInstanceOf('DateTime', $result[1]['date']);
68 public function testTicketSingleResult()
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();
73 $this->assertTrue(is_array($datetime));
75 $this->assertInstanceOf('DateTime', $datetime['datetime']);
76 $this->assertInstanceOf('DateTime', $datetime['time']);
77 $this->assertInstanceOf('DateTime', $datetime['date']);
80 public function testTicketResult()
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();
85 $this->assertCount(2,$result);
87 $this->assertInstanceOf('DateTime', $result[0]['time']);
88 $this->assertInstanceOf('DateTime', $result[0]['date']);
89 $this->assertInstanceOf('DateTime', $result[0]['datetime']);
91 $this->assertEquals('2010-01-01 11:11:11', $result[0]['datetime']->format('Y-m-d G:i:s'));
93 $this->assertInstanceOf('DateTime', $result[1]['time']);
94 $this->assertInstanceOf('DateTime', $result[1]['date']);
95 $this->assertInstanceOf('DateTime', $result[1]['datetime']);
97 $this->assertEquals('2010-02-02 12:12:12', $result[1]['datetime']->format('Y-m-d G:i:s'));
100 public function loadFixtures()
102 $timezone = new \DateTimeZone('America/Sao_Paulo');
104 $dateTime1 = new DateTimeModel();
105 $dateTime2 = new DateTimeModel();
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);
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);
115 $this->_em->persist($dateTime1);
116 $this->_em->persist($dateTime2);