/** * @dataProvider testCaseProvider */ public function testPassesComplianceTest($about, Service $service, $name, array $args, $serialized) { $ep = 'http://dus-bb-api802.dus.via.de'; $client = new VwsClient(['service' => 'foo', 'api_provider' => function () use($service) { return $service->toArray(); }, 'credentials' => false, 'client' => new Client(), 'region' => 'sandbox', 'endpoint' => $ep, 'error_parser' => Service::createErrorParser($service->getProtocol()), 'serializer' => Service::createSerializer($service, $ep), 'version' => 'latest']); $command = $client->getCommand($name, $args); $trans = new CommandTransaction($client, $command); /** @var callable $serializer */ $serializer = $this->readAttribute($client, 'serializer'); $request = $serializer($trans); $this->assertEquals($serialized['uri'], $request->getResource()); $body = (string) $request->getBody(); switch ($service->getMetadata('type')) { case 'json': case 'rest-json': // Normalize the JSON data. $body = str_replace(':', ': ', $request->getBody()); $body = str_replace(',', ', ', $body); break; } $this->assertEquals($serialized['body'], $body); if (isset($serialized['headers'])) { foreach ($serialized['headers'] as $key => $value) { $this->assertSame($value, $request->getHeader($key)); } } }
/** * [testHasGetters description]. */ public function testHasGetters() { $config = ['client' => new Client(), 'credentials' => new Credentials('foo', 'bar', 'foo_bar'), 'region' => 'foo', 'endpoint' => 'http://sandboxapi.via.de:8001/api', 'serializer' => function () { }, 'api_provider' => $this->getApiProvider(), 'service' => 'foo', 'error_parser' => function () { }, 'version' => 'latest']; $client = new VwsClient($config); $this->assertSame($config['client'], $client->getHttpClient()); $this->assertSame($config['credentials'], $client->getCredentials()); $this->assertSame($config['region'], $client->getRegion()); $this->assertEquals('foo', $client->getApi()->getEndpointPrefix()); }
/** * {@inheritdoc} */ public static function getArguments() { $args = parent::getArguments(); $args['scheme']['default'] = 'http'; if (isset($args['region'])) { $args['region']['default'] = 'sandbox'; } if (isset($args['region']) && $args['region'] != 'local') { $args['scheme']['default'] = 'https'; } return $args; }