121 lines
4.4 KiB
PHP
121 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
use Doctrine\Tests\Models\Generic\DateTimeModel;
|
|
|
|
/**
|
|
* @group DDC-657
|
|
*/
|
|
class DDC657Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
const NS = 'Doctrine\Tests\Models\Generic';
|
|
|
|
protected function setUp()
|
|
{
|
|
$this->useModelSet('generic');
|
|
parent::setUp();
|
|
|
|
$this->loadFixtures();
|
|
}
|
|
|
|
public function testEntitySingleResult()
|
|
{
|
|
$query = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d');
|
|
$datetime = $query->setMaxResults(1)->getSingleResult();
|
|
|
|
$this->assertInstanceOf('Doctrine\Tests\Models\Generic\DateTimeModel', $datetime);
|
|
|
|
$this->assertInstanceOf('DateTime', $datetime->datetime);
|
|
$this->assertInstanceOf('DateTime', $datetime->time);
|
|
$this->assertInstanceOf('DateTime', $datetime->date);
|
|
}
|
|
|
|
public function testScalarResult()
|
|
{
|
|
$query = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
|
|
$result = $query->getScalarResult();
|
|
|
|
$this->assertCount(2,$result);
|
|
|
|
$this->assertContains('11:11:11', $result[0]['time']);
|
|
$this->assertContains('2010-01-01', $result[0]['date']);
|
|
$this->assertContains('2010-01-01 11:11:11', $result[0]['datetime']);
|
|
|
|
$this->assertContains('12:12:12', $result[1]['time']);
|
|
$this->assertContains('2010-02-02', $result[1]['date']);
|
|
$this->assertContains('2010-02-02 12:12:12', $result[1]['datetime']);
|
|
}
|
|
|
|
public function testaTicketEntityArrayResult()
|
|
{
|
|
$query = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
|
|
$result = $query->getArrayResult();
|
|
|
|
$this->assertCount(2,$result);
|
|
|
|
$this->assertInstanceOf('DateTime', $result[0]['datetime']);
|
|
$this->assertInstanceOf('DateTime', $result[0]['time']);
|
|
$this->assertInstanceOf('DateTime', $result[0]['date']);
|
|
|
|
$this->assertInstanceOf('DateTime', $result[1]['datetime']);
|
|
$this->assertInstanceOf('DateTime', $result[1]['time']);
|
|
$this->assertInstanceOf('DateTime', $result[1]['date']);
|
|
}
|
|
|
|
public function testTicketSingleResult()
|
|
{
|
|
$query = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
|
|
$datetime = $query->setMaxResults(1)->getSingleResult();
|
|
|
|
$this->assertTrue(is_array($datetime));
|
|
|
|
$this->assertInstanceOf('DateTime', $datetime['datetime']);
|
|
$this->assertInstanceOf('DateTime', $datetime['time']);
|
|
$this->assertInstanceOf('DateTime', $datetime['date']);
|
|
}
|
|
|
|
public function testTicketResult()
|
|
{
|
|
$query = $this->_em->createQuery('SELECT d.id, d.time, d.date, d.datetime FROM ' . self::NS . '\DateTimeModel d ORDER BY d.date ASC');
|
|
$result = $query->getResult();
|
|
|
|
$this->assertCount(2,$result);
|
|
|
|
$this->assertInstanceOf('DateTime', $result[0]['time']);
|
|
$this->assertInstanceOf('DateTime', $result[0]['date']);
|
|
$this->assertInstanceOf('DateTime', $result[0]['datetime']);
|
|
|
|
$this->assertEquals('2010-01-01 11:11:11', $result[0]['datetime']->format('Y-m-d G:i:s'));
|
|
|
|
$this->assertInstanceOf('DateTime', $result[1]['time']);
|
|
$this->assertInstanceOf('DateTime', $result[1]['date']);
|
|
$this->assertInstanceOf('DateTime', $result[1]['datetime']);
|
|
|
|
$this->assertEquals('2010-02-02 12:12:12', $result[1]['datetime']->format('Y-m-d G:i:s'));
|
|
}
|
|
|
|
public function loadFixtures()
|
|
{
|
|
$timezone = new \DateTimeZone('America/Sao_Paulo');
|
|
|
|
$dateTime1 = new DateTimeModel();
|
|
$dateTime2 = new DateTimeModel();
|
|
|
|
$dateTime1->date = new \DateTime('2010-01-01', $timezone);
|
|
$dateTime1->time = new \DateTime('2010-01-01 11:11:11', $timezone);
|
|
$dateTime1->datetime= new \DateTime('2010-01-01 11:11:11', $timezone);
|
|
|
|
$dateTime2->date = new \DateTime('2010-02-02', $timezone);
|
|
$dateTime2->time = new \DateTime('2010-02-02 12:12:12', $timezone);
|
|
$dateTime2->datetime= new \DateTime('2010-02-02 12:12:12', $timezone);
|
|
|
|
$this->_em->persist($dateTime1);
|
|
$this->_em->persist($dateTime2);
|
|
|
|
$this->_em->flush();
|
|
}
|
|
}
|