Skip to content

Commit

Permalink
Optimized scalar type mapping support.
Browse files Browse the repository at this point in the history
  • Loading branch information
guilhermeblanco committed Jan 16, 2012
1 parent 28403ab commit fdb2b9c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 21 deletions.
4 changes: 2 additions & 2 deletions lib/Doctrine/ORM/Query/ResultSetMapping.php
Original file line number Diff line number Diff line change
Expand Up @@ -308,10 +308,10 @@ public function addJoinedEntityResult($class, $alias, $parentAlias, $relation)
*
* @todo Rename: addScalar
*/
public function addScalarResult($columnName, $alias, $type = null)
public function addScalarResult($columnName, $alias, $type = 'string')
{
$this->scalarMappings[$columnName] = $alias;
$this->typeMappings[$columnName] = $type ?: 'string';
$this->typeMappings[$columnName] = $type;

if ( ! $this->isMixed && $this->fieldMappings) {
$this->isMixed = true;
Expand Down
40 changes: 21 additions & 19 deletions tests/Doctrine/Tests/ORM/Functional/Ticket/DDC657Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ public function testEntitySingleResult()
$query = $this->_em->createQuery('SELECT d FROM ' . self::NS . '\DateTimeModel d');
$datetime = $query->setMaxResults(1)->getSingleResult();

$this->assertTrue($datetime instanceof DateTimeModel);
$this->assertInstanceOf('Doctrine\Tests\Models\Generic\DateTimeModel', $datetime);

$this->assertTrue($datetime->datetime instanceof \DateTime);
$this->assertTrue($datetime->time instanceof \DateTime);
$this->assertTrue($datetime->date instanceof \DateTime);
$this->assertInstanceOf('DateTime', $datetime->datetime);
$this->assertInstanceOf('DateTime', $datetime->time);
$this->assertInstanceOf('DateTime', $datetime->date);
}

public function testScalarResult()
Expand All @@ -56,13 +56,13 @@ public function testaTicketEntityArrayResult()

$this->assertCount(2,$result);

$this->assertTrue($result[0]['datetime'] instanceof \DateTime);
$this->assertTrue($result[0]['time'] instanceof \DateTime);
$this->assertTrue($result[0]['date'] instanceof \DateTime);
$this->assertInstanceOf('DateTime', $result[0]['datetime']);
$this->assertInstanceOf('DateTime', $result[0]['time']);
$this->assertInstanceOf('DateTime', $result[0]['date']);

$this->assertTrue($result[1]['datetime'] instanceof \DateTime);
$this->assertTrue($result[1]['time'] instanceof \DateTime);
$this->assertTrue($result[1]['date'] instanceof \DateTime);
$this->assertInstanceOf('DateTime', $result[1]['datetime']);
$this->assertInstanceOf('DateTime', $result[1]['time']);
$this->assertInstanceOf('DateTime', $result[1]['date']);
}

public function testTicketSingleResult()
Expand All @@ -72,9 +72,9 @@ public function testTicketSingleResult()

$this->assertTrue(is_array($datetime));

$this->assertTrue($datetime['datetime'] instanceof \DateTime);
$this->assertTrue($datetime['time'] instanceof \DateTime);
$this->assertTrue($datetime['date'] instanceof \DateTime);
$this->assertInstanceOf('DateTime', $datetime['datetime']);
$this->assertInstanceOf('DateTime', $datetime['time']);
$this->assertInstanceOf('DateTime', $datetime['date']);
}

public function testTicketResult()
Expand All @@ -84,14 +84,16 @@ public function testTicketResult()

$this->assertCount(2,$result);

$this->assertTrue($result[0]['time'] instanceof \DateTime);
$this->assertTrue($result[0]['date'] instanceof \DateTime);
$this->assertTrue($result[0]['datetime'] instanceof \DateTime);
$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->assertTrue($result[1]['time'] instanceof \DateTime);
$this->assertTrue($result[1]['date'] instanceof \DateTime);
$this->assertTrue($result[1]['datetime'] instanceof \DateTime);
$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'));
}

Expand Down

0 comments on commit fdb2b9c

Please sign in to comment.