private function httpRequestTest(string $request, string $method, string $uri, array $query = array(), string $body = null, array $headers = array(), $version = "0.9")
 {
     $message = new HttpMessage();
     $this->mapper->mapStreamToMessage(new StringStream($request), $message);
     $this->assertEquals($version, $message->getHttpVersion());
     $this->assertEquals($method, $message->getHttpMethod());
     $this->assertEquals($uri, $message->getHttpUri());
     foreach ($query as $name => $value) {
         $this->assertTrue($message->hasQueryHeader($name));
         $this->assertEquals($value, $message->getQueryHeader($name));
     }
     foreach ($headers as $name => $header) {
         $this->assertTrue($message->hasHeader($name));
         $this->assertEquals($header, $message->getHeader($name));
     }
     $this->assertEquals($body, $message->getBody());
 }