public function testRequestInfo() { $client = new Client(['base_url' => 'http://example.com']); $builder = new Builder(); $urlTokenParam = (object) ['function' => 'concat', 'args' => [(object) ['request' => 'url'], (object) ['attr' => 'token'], (object) ['query' => 'param']]]; $definitions = ['urlTokenParamHash' => (object) ['function' => 'md5', 'args' => [$urlTokenParam]], 'urlTokenParam' => $urlTokenParam]; $attrs = ['token' => 'asdf1234']; $auth = new Query($builder, $attrs, $definitions); $auth->authenticateClient(new RestClient($client)); $mock = new Mock([new Response(200, [], Stream::factory(json_encode((object) ['data' => [1, 2, 3]])))]); $client->getEmitter()->attach($mock); $request = $client->createRequest('GET', '/query?param=value'); $originalUrl = $request->getUrl(); $this->sendRequest($client, $request); self::assertEquals('param=value&urlTokenParamHash=' . md5($originalUrl . $attrs['token'] . 'value') . '&urlTokenParam=' . urlencode($originalUrl) . $attrs['token'] . 'value', (string) $request->getQuery()); }