public function getHydrator()
 {
     $hydrator = parent::getHydrator();
     $hydrator->addFilter('getIterator', new Filter\MethodMatchFilter('getIterator'), Filter\FilterComposite::CONDITION_AND);
     $hydrator->addFilter('getResources', new Filter\MethodMatchFilter('getResources'), Filter\FilterComposite::CONDITION_AND);
     return $hydrator;
 }
 /**
  * Test hydration of result types using public property setters
  * 
  * @dataProvider provideResultTypes
  *
  * @param string $resultType
  */
 public function testResultHydration($resultType)
 {
     $resultFixture = $this->getResultFixture();
     $resultTypeFQN = AbstractResult::ns() . "\\{$resultType}";
     $resultTypeReflection = new ReflectionClass($resultTypeFQN);
     if ($resultTypeReflection->isAbstract()) {
         return;
     }
     $result = new $resultTypeFQN();
     $this->assertInstanceOf($resultTypeFQN, $result);
     if (!isset($resultFixture[$resultType])) {
         $this->markTestSkipped('No fixture to test with.');
     }
     $hydrator = $result->getHydrator();
     $fixture = $resultFixture[$resultType];
     foreach ($fixture["data"] as $property => $value) {
         $result->{$property} = $value;
     }
     $dataResult = $hydrator->extract($result);
     $this->assertEquals($fixture["result"], $dataResult);
 }