예제 #1
0
 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());
 }