public function testTestConnection()
 {
     $merchantId = '20000';
     $relativeUriPath = '/' . Client::API_VERSION . '/' . $merchantId . '/services/testconnection';
     $communicatorConfiguration = $this->getCommunicatorConfiguration();
     $requestHeaderGenerator = new RequestHeaderGenerator($communicatorConfiguration, 'GET', $relativeUriPath);
     $requestHeaders = $requestHeaderGenerator->generateRequestHeaders();
     $response = $this->connection->get($this->getApiEndpoint() . $relativeUriPath, $requestHeaders);
     $this->assertEquals(200, $response->getHttpStatusCode());
     $this->assertEquals('application/json', $response->getHeaderValue('Content-Type'));
     $this->assertEquals(array('result' => 'OK'), json_decode($response->getBody(), true));
 }
 /**
  * @param string $httpMethod
  * @param string $relativeUriPathWithRequestParameters
  * @param string $clientMetaInfo
  * @param CallContext $callContext
  * @return string[]
  */
 protected function getRequestHeaders($httpMethod, $relativeUriPathWithRequestParameters, $clientMetaInfo = '', CallContext $callContext = null)
 {
     $requestHeaderGenerator = new RequestHeaderGenerator($this->communicatorConfiguration, $httpMethod, $relativeUriPathWithRequestParameters, $clientMetaInfo, $callContext);
     return $requestHeaderGenerator->generateRequestHeaders();
 }
 public function testServerMetaInfoHeaderFull()
 {
     // create a new CommunicatorConfiguration to not modify the field
     $communicatorConfiguration = new CommunicatorConfiguration($this->getApiKey(), $this->getApiSecret(), $this->getApiEndpoint(), 'Ingenico.Integrator');
     $communicatorConfiguration->setShoppingCartExtension(new ShoppingCartExtension('Ingenico.Creator', 'Extension', '1.0'));
     $requestHeaderGenerator = new RequestHeaderGenerator($communicatorConfiguration, 'GET', '/v1/consumer/ANDR%C3%89E/?q=na%20me');
     $requestHeaders = $requestHeaderGenerator->generateRequestHeaders();
     $serverMetaInfoJson = $requestHeaders['X-GCS-ServerMetaInfo'];
     $serverMetaInfo = json_decode(base64_decode($serverMetaInfoJson));
     $this->assertInstanceOf('\\stdClass', $serverMetaInfo);
     $this->assertObjectHasAttribute('platformIdentifier', $serverMetaInfo);
     $this->assertContains(php_uname(), $serverMetaInfo->platformIdentifier);
     $this->assertContains(phpversion(), $serverMetaInfo->platformIdentifier);
     $this->assertObjectHasAttribute('sdkIdentifier', $serverMetaInfo);
     $this->assertEquals('PHPServerSDK/v' . RequestHeaderGenerator::SDK_VERSION, $serverMetaInfo->sdkIdentifier);
     $this->assertObjectHasAttribute('sdkCreator', $serverMetaInfo);
     $this->assertEquals('Ingenico', $serverMetaInfo->sdkCreator);
     $this->assertObjectHasAttribute('integrator', $serverMetaInfo);
     $this->assertEquals('Ingenico.Integrator', $serverMetaInfo->integrator);
     $this->assertObjectHasAttribute('shoppingCartExtension', $serverMetaInfo);
     $this->assertInstanceOf('\\stdClass', $serverMetaInfo->shoppingCartExtension);
     $this->assertObjectHasAttribute('creator', $serverMetaInfo->shoppingCartExtension);
     $this->assertEquals('Ingenico.Creator', $serverMetaInfo->shoppingCartExtension->creator);
     $this->assertObjectHasAttribute('name', $serverMetaInfo->shoppingCartExtension);
     $this->assertEquals('Extension', $serverMetaInfo->shoppingCartExtension->name);
     $this->assertObjectHasAttribute('version', $serverMetaInfo->shoppingCartExtension);
     $this->assertEquals('1.0', $serverMetaInfo->shoppingCartExtension->version);
 }