X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FHydration%2FScalarHydratorTest.php;fp=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FHydration%2FScalarHydratorTest.php;h=c8c376f7cd95e0b94c379329c68cb59651f5650c;hb=8b04b2d11798dee4f3e1358e4f43e97a6df851f6;hp=0000000000000000000000000000000000000000;hpb=73568cf05a785a45f94ca3f2351d9e07bf917958;p=zf2.biz%2Fapplication_blanche.git diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Hydration/ScalarHydratorTest.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Hydration/ScalarHydratorTest.php new file mode 100644 index 0000000..c8c376f --- /dev/null +++ b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Hydration/ScalarHydratorTest.php @@ -0,0 +1,101 @@ +addEntityResult('Doctrine\Tests\Models\CMS\CmsUser', 'u'); + $rsm->addFieldResult('u', 'u__id', 'id'); + $rsm->addFieldResult('u', 'u__name', 'name'); + + // Faked result set + $resultSet = array( + array( + 'u__id' => '1', + 'u__name' => 'romanb' + ), + array( + 'u__id' => '2', + 'u__name' => 'jwage' + ) + ); + + + $stmt = new HydratorMockStatement($resultSet); + $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em); + + $result = $hydrator->hydrateAll($stmt, $rsm); + + $this->assertTrue(is_array($result)); + $this->assertEquals(2, count($result)); + $this->assertEquals('romanb', $result[0]['u_name']); + $this->assertEquals(1, $result[0]['u_id']); + $this->assertEquals('jwage', $result[1]['u_name']); + $this->assertEquals(2, $result[1]['u_id']); + } + + /** + * @group DDC-407 + */ + public function testHydrateScalarResults() + { + $rsm = new ResultSetMapping(); + $rsm->addScalarResult('foo1', 'foo'); + $rsm->addScalarResult('bar2', 'bar'); + $rsm->addScalarResult('baz3', 'baz'); + + $resultSet = array( + array( + 'foo1' => 'A', + 'bar2' => 'B', + 'baz3' => 'C', + ), + ); + + $stmt = new HydratorMockStatement($resultSet); + $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em); + + $result = $hydrator->hydrateAll($stmt, $rsm); + } + + /** + * @group DDC-644 + */ + public function testSkipUnknownColumns() + { + $rsm = new ResultSetMapping; + $rsm->addEntityResult('Doctrine\Tests\Models\CMS\CmsUser', 'u'); + $rsm->addFieldResult('u', 'u__id', 'id'); + $rsm->addFieldResult('u', 'u__name', 'name'); + $rsm->addScalarResult('foo1', 'foo'); + $rsm->addScalarResult('bar2', 'bar'); + $rsm->addScalarResult('baz3', 'baz'); + + $resultSet = array( + array( + 'u__id' => '1', + 'u__name' => 'romanb', + 'foo1' => 'A', + 'bar2' => 'B', + 'baz3' => 'C', + 'foo' => 'bar', // Unknown! + ), + ); + + $stmt = new HydratorMockStatement($resultSet); + $hydrator = new \Doctrine\ORM\Internal\Hydration\ScalarHydrator($this->_em); + + $result = $hydrator->hydrateAll($stmt, $rsm); + } +} \ No newline at end of file