Esempio n. 1
0
 /**
  * SELECT PARTIAL u.{id, name}
  *   FROM Doctrine\Tests\Models\CMS\CmsUser u
  */
 public function testResultIterationWithAliasedUserEntity()
 {
     $rsm = new ResultSetMapping();
     $rsm->addEntityResult('Doctrine\\Tests\\Models\\CMS\\CmsUser', 'u', 'user');
     $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\ObjectHydrator($this->_em);
     $iterableResult = $hydrator->iterate($stmt, $rsm, array(Query::HINT_FORCE_PARTIAL_LOAD => true));
     $rowNum = 0;
     while (($row = $iterableResult->next()) !== false) {
         $this->assertEquals(1, count($row));
         $this->assertArrayHasKey(0, $row);
         $this->assertArrayHasKey('user', $row[0]);
         $this->assertInstanceOf('Doctrine\\Tests\\Models\\CMS\\CmsUser', $row[0]['user']);
         if ($rowNum == 0) {
             $this->assertEquals(1, $row[0]['user']->id);
             $this->assertEquals('romanb', $row[0]['user']->name);
         } else {
             if ($rowNum == 1) {
                 $this->assertEquals(2, $row[0]['user']->id);
                 $this->assertEquals('jwage', $row[0]['user']->name);
             }
         }
         ++$rowNum;
     }
 }
Esempio n. 2
0
 public function testResultIteration()
 {
     $rsm = new ResultSetMapping();
     $rsm->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\ObjectHydrator($this->_em);
     $iterableResult = $hydrator->iterate($stmt, $rsm);
     $rowNum = 0;
     while (($row = $iterableResult->next()) !== false) {
         $this->assertEquals(1, count($row));
         $this->assertTrue($row[0] instanceof \Doctrine\Tests\Models\CMS\CmsUser);
         if ($rowNum == 0) {
             $this->assertEquals(1, $row[0]->id);
             $this->assertEquals('romanb', $row[0]->name);
         } else {
             if ($rowNum == 1) {
                 $this->assertEquals(2, $row[0]->id);
                 $this->assertEquals('jwage', $row[0]->name);
             }
         }
         ++$rowNum;
     }
 }