/**
  * Test population of each request type
  *
  * @dataProvider provideRequestTypes
  *
  * @param string $requestType
  */
 public function testRequestHydration($requestType)
 {
     $requestReflection = new ReflectionClass(AbstractRequest::ns() . "\\{$requestType}");
     if ($requestReflection->isAbstract()) {
         return;
     }
     $client = $this->getMockClient();
     $request = $client::request($requestType);
     $this->assertInstanceOf(AbstractRequest::ns() . "\\{$requestType}", $request);
     $hydrator = $request->getHydrator();
     $data = $hydrator->extract($request);
     foreach ($data as &$value) {
         $value = ' ';
     }
     $request = $hydrator->hydrate($data, $request);
     $idempotentData = $hydrator->extract($request);
     $this->assertEquals($data, $idempotentData);
 }
 public static function request($type)
 {
     $requestClass = AbstractRequest::ns() . "\\{$type}";
     return new $requestClass();
 }