3 namespace Doctrine\Tests\ORM\Hydration;
5 use Doctrine\Tests\Mocks\HydratorMockStatement;
6 use Doctrine\ORM\Query\ResultSetMapping;
8 require_once __DIR__ . '/../../TestInit.php';
10 class ScalarHydratorTest extends HydrationTestCase
13 * Select u.id, u.name from CmsUser u
15 public function testNewHydrationSimpleEntityQuery()
17 $rsm = new ResultSetMapping;
18 $rsm->addEntityResult('Doctrine\Tests\Models\CMS\CmsUser', 'u');
19 $rsm->addFieldResult('u', 'u__id', 'id');
20 $rsm->addFieldResult('u', 'u__name', 'name');
35 $stmt = new HydratorMockStatement($resultSet);
36 $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em);
38 $result = $hydrator->hydrateAll($stmt, $rsm);
40 $this->assertTrue(is_array($result));
41 $this->assertEquals(2, count($result));
42 $this->assertEquals('romanb', $result[0]['u_name']);
43 $this->assertEquals(1, $result[0]['u_id']);
44 $this->assertEquals('jwage', $result[1]['u_name']);
45 $this->assertEquals(2, $result[1]['u_id']);
51 public function testHydrateScalarResults()
53 $rsm = new ResultSetMapping();
54 $rsm->addScalarResult('foo1', 'foo');
55 $rsm->addScalarResult('bar2', 'bar');
56 $rsm->addScalarResult('baz3', 'baz');
66 $stmt = new HydratorMockStatement($resultSet);
67 $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em);
69 $result = $hydrator->hydrateAll($stmt, $rsm);
75 public function testSkipUnknownColumns()
77 $rsm = new ResultSetMapping;
78 $rsm->addEntityResult('Doctrine\Tests\Models\CMS\CmsUser', 'u');
79 $rsm->addFieldResult('u', 'u__id', 'id');
80 $rsm->addFieldResult('u', 'u__name', 'name');
81 $rsm->addScalarResult('foo1', 'foo');
82 $rsm->addScalarResult('bar2', 'bar');
83 $rsm->addScalarResult('baz3', 'baz');
88 'u__name' => 'romanb',
92 'foo' => 'bar', // Unknown!
96 $stmt = new HydratorMockStatement($resultSet);
97 $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em);
99 $result = $hydrator->hydrateAll($stmt, $rsm);