diff --git a/src/client/CoinGeckoApiClient.php b/src/client/CoinGeckoApiClient.php index d88097a..c216f0b 100644 --- a/src/client/CoinGeckoApiClient.php +++ b/src/client/CoinGeckoApiClient.php @@ -86,8 +86,7 @@ public function __call($name, $arguments): CoinGeckoApiClient $arguments ); } - - $this->endpointKey = strtolower($this->endpoint); + return new CoinGeckoApiClient( $this->apiClient, $this->endpoint, @@ -149,11 +148,11 @@ private function sendSwitch( $endpoint = $this->getApiEndpoint(); $url = $baseUrl . $endpoint; - $this->apiClient = $this->apiClient->setUrl($url); + $this->apiClient = $this->apiClient->setUrl($url); if (!is_null($urlBuilder)) { $this->apiClient = $this->apiClient->setUrl( - $baseUrl . $endpoint . $urlBuilder->build() + $url . $urlBuilder->build() ); } diff --git a/tests/client/ApiClientTest.php b/tests/client/ApiClientTest.php index e84aa72..e9da8d1 100644 --- a/tests/client/ApiClientTest.php +++ b/tests/client/ApiClientTest.php @@ -14,8 +14,6 @@ final class ApiClientTest extends TestCase { - const API_BASE_URL = "https://api.coingecko.com/api/"; - public function testCanGetTheURL(): void { $urlBuilder = new CoinGeckoUrlBuilder([], "/coins/verus-coin/market_chart"); @@ -57,12 +55,7 @@ public function testCanBuildURLWithCustomEndpoint(): void { $urlBuilder = new CoinGeckoUrlBuilder([], "/coins/verus-coin/market_chart"); $client = new ApiClient($urlBuilder->build()); - $client = $client - ->setUrlBuilder( - $urlBuilder - ->withDays(7) - ->withVsCurrency("jpy") - ); + $client = $client->setUrlBuilder($urlBuilder->withDays(7)->withVsCurrency("jpy")); $this->assertEquals( $client->getUrl(), @@ -71,12 +64,7 @@ public function testCanBuildURLWithCustomEndpoint(): void $urlBuilder = new CoinGeckoUrlBuilder([["days", "9999"], ["vs_currency", "usd"]], "/coins/verus-coin/market_chart"); $client = new ApiClient($urlBuilder->build()); - $client = $client - ->setUrlBuilder( - $urlBuilder - ->withDays(7) - ->withVsCurrency("jpy") - ); + $client = $client->setUrlBuilder($urlBuilder->withDays(7)->withVsCurrency("jpy")); $this->assertEquals( $client->getUrl(), @@ -109,21 +97,10 @@ public function testCanHandlerHttpResponse(): void $urlBuilder = new CoinGeckoUrlBuilder([], "/coins/verus-coin/market_chart"); $client = new ApiClient($urlBuilder->build(), $httpClient); - $response = $client - ->setUrlBuilder( - $urlBuilder - ->withDays(1) - ->withVsCurrency("jpy") - ) - ->send(); + $response = $client->setUrlBuilder($urlBuilder->withDays(1)->withVsCurrency("jpy"))->send(); $this->assertEquals($response, $responsePayload); - $response = $client - ->setUrlBuilder( - $urlBuilder - ->withDays(1) - ->withVsCurrency("jpy") - )->send(); + $response = $client->setUrlBuilder($urlBuilder->withDays(1)->withVsCurrency("jpy"))->send(); $this->assertEquals($response, []); } diff --git a/tests/client/CoinGeckoApiClientTest.php b/tests/client/CoinGeckoApiClientTest.php index 5fddba8..98f60f1 100644 --- a/tests/client/CoinGeckoApiClientTest.php +++ b/tests/client/CoinGeckoApiClientTest.php @@ -188,7 +188,7 @@ public function testCanBuildNewEndpointWhenSetIsCalledAfterMultipleSend(): void $apiClient->send(); $this->assertEquals($apiClient->getEndpointKey(), '/coins/markets'); } - + public function testCanBuildTheEndpointWithParameters(): void { $apiClient = new CoinGeckoApiClient(); @@ -203,7 +203,7 @@ public function testCanBuildTheEndpointWithParameters(): void $apiClient = $apiClient->indexes("PARAM1", "PARAM2")->tickers(); $this->assertEquals($apiClient->getEndpointKey(), '/indexes/%s/%s/tickers'); } - + public function testCanBuildTheEndpointWithUriVariation(): void { $apiClient = new CoinGeckoApiClient(); @@ -258,7 +258,7 @@ public function testCanBuildTheEndpointWithUriVariation(): void $apiClient = $apiClient->simple()->supported_vs_currencies(); $this->assertEquals($apiClient->getEndpointKey(), '/simple/supportedvscurrencies'); } - + public function testCanBuildTheEndpointWithUriVariationAndParameters(): void { $apiClient = new CoinGeckoApiClient();