public function testInvokability()
 {
     $com = new Communicator(HOSTNAME, PORT);
     Client::login($com, USERNAME, PASSWORD);
     $request = new Request('/ping');
     $request('address', HOSTNAME)->setTag('p');
     $this->assertEquals(HOSTNAME, $request('address'));
     $this->assertEquals('p', $request->getTag());
     $this->assertEquals('p', $request());
     $request($com);
     $response = new Response($com, false, ini_get('default_socket_timeout'));
     $this->assertInternalType('string', $response());
     $this->assertEquals(HOSTNAME, $response('host'));
     $request = new Request('/queue/simple/print');
     $query = Query::where('target', HOSTNAME_INVALID . '/32');
     $request($query);
     $this->assertSame($query, $request->getQuery());
     $com('/quit');
     $com('');
 }
 /**
  * Sends a request and gets the full response.
  * 
  * @param Request $request The request to send.
  * 
  * @return ResponseCollection The received responses as a collection.
  * @see sendAsync()
  * @see close()
  */
 public function sendSync(Request $request)
 {
     $tag = $request->getTag();
     if ('' == $tag) {
         $this->send($request);
     } else {
         $this->sendAsync($request);
     }
     return $this->completeRequest($tag);
 }