<?php namespace CoinbaseCommerce\Tests; use CoinbaseCommerce\ApiClient; use PHPUnit\Framework\TestCase; class ApiClientTest extends TestCase { public function setUp() { parent::setUp(); } /** * @expectedException \Exception * @expectedExceptionMessage Please init client first. */ public function testFailOnGetInstanceWithoutInit() { ApiClient::getInstance(); } public function testInitWithParams() { $apiKey = 'test_api_key'; $baseApiUrl = 'http://test.com/'; $apiVersion = '2018-03-20'; $timeout = 5; $client = ApiClient::init($apiKey, $baseApiUrl, $apiVersion, $timeout); $this->assertEquals($apiKey, $client->getApiKey()); $this->assertEquals($baseApiUrl, $client->getBaseUrl()); $this->assertEquals($apiVersion, $client->getApiVersion()); $this->assertEquals($timeout, $client->getTimeout()); } public function testCorrectReinit() { $apiKey = 'test_api_key'; $baseApiUrl = 'http://test.com/'; $apiVersion = '2018-03-20'; $timeout = 5; $clientFirst = ApiClient::init($apiKey, $baseApiUrl, $apiVersion, $timeout); $apiKey = 'another_test_api_key'; $clientSecond = ApiClient::init($apiKey, $baseApiUrl, $apiVersion, $timeout); $this->assertSame($clientFirst, $clientSecond); $this->assertInstanceOf(ApiClient::getClassName(), $clientSecond); } }