Skip to content

Commit e089921

Browse files
committed
fix: add failing test when aliasing a column of a joined relation
1 parent 931eef1 commit e089921

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/Ticket/GH134TestCase.php

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
class Doctrine_Ticket_GH134_TestCase extends Doctrine_UnitTestCase
4+
{
5+
private function doTestWithAllColumnsAliased($hydrateType, $expectedKeys)
6+
{
7+
try {
8+
$query = Doctrine_Query::create()
9+
->select('u.id, e.address as aliasAddress')
10+
->from('User u')
11+
->innerJoin('u.Email e')
12+
;
13+
14+
$results = $query->execute(array(), $hydrateType);
15+
16+
$expectedSql = 'SELECT e.id AS e__id, e2.address AS e2__0 FROM entity e INNER JOIN email e2 ON e.email_id = e2.id WHERE (e.type = 0)';
17+
18+
$this->assertEqual($expectedSql, $query->getSqlQuery());
19+
$this->assertEqual($expectedKeys, array_keys($results[0]));
20+
$this->assertEqual(count($this->users), count($results));
21+
22+
$this->pass();
23+
} catch (Exception $e) {
24+
$this->fail($e->getMessage());
25+
}
26+
}
27+
28+
public function test_hydrateScalar_withAllColumnsAliased_thenResultsHasAllRecords()
29+
{
30+
$hydrateType = Doctrine_Core::HYDRATE_SCALAR;
31+
$expectedKeys = array('u_id', 'e_aliasAddress');
32+
33+
$this->doTestWithAllColumnsAliased($hydrateType, $expectedKeys);
34+
}
35+
36+
public function test_hydrateArrayShallow_withAllColumnsAliased_thenResultsHasAllRecords()
37+
{
38+
$hydrateType = Doctrine_Core::HYDRATE_ARRAY_SHALLOW;
39+
$expectedKeys = array('id', 'aliasAddress');
40+
41+
$this->doTestWithAllColumnsAliased($hydrateType, $expectedKeys);
42+
}
43+
44+
public function test_hydrateArray_withAllColumnsAliased_thenResultsHasAllRecords()
45+
{
46+
$hydrateType = Doctrine_Core::HYDRATE_ARRAY;
47+
$expectedKeys = array('id', 'aliasAddress');
48+
49+
$this->doTestWithAllColumnsAliased($hydrateType, $expectedKeys);
50+
}
51+
}

0 commit comments

Comments
 (0)