/** * @param GuzzleClientInterface $client * @param RequestBuilder $requestBuilder * * @throws \InvalidArgumentException */ public function __construct(GuzzleClientInterface $client, RequestBuilder $requestBuilder) { if ($client->getConfig('base_url') !== $requestBuilder->getBaseUrl()) { throw new \InvalidArgumentException(sprintf('Expected base url of client and request build to match. Got respectively "%s" and "%s" instead.', $client->getConfig('base_url'), $requestBuilder->getBaseUrl())); } $this->client = $client; $this->requestBuilder = $requestBuilder; }
/** * @cover ::__construct */ public function testConstructor() { $urlBuilderProphecy = $this->prophesize(UrlBuilder::class); $requestBuilder = new RequestBuilder($urlBuilderProphecy->reveal(), 'http://example.com'); $this->assertEquals('http://example.com', $requestBuilder->getBaseUrl()); $requestBuilder = new RequestBuilder($urlBuilderProphecy->reveal(), 'http://example.com/'); $this->assertEquals('http://example.com', $requestBuilder->getBaseUrl()); try { new RequestBuilder($urlBuilderProphecy->reveal(), 'example.com'); $this->fail('Expected exception to be thrown'); } catch (\InvalidArgumentException $exception) { // Expected result } }