setConnectionTimeout(10); $this->assertEquals(10, $client->getConnectionTimeout()); } public function testTimeout() { $client = new CurlClient(); $client->setTimeout(10); $this->assertEquals(10, $client->getTimeout()); } public function testProxy() { $client = new CurlClient(); $client->setProxy('proxy_url:8889'); $this->assertEquals('proxy_url:8889', $client->getProxy()); } /** * @dataProvider curlErrorCodeProvider * @expectedException \YooKassa\Common\Exceptions\ApiConnectionException */ public function testHandleCurlError($error, $errn) { $client = new CurlClient(); $reflector = new \ReflectionClass('\YooKassa\Client\CurlClient'); $method = $reflector->getMethod('handleCurlError'); $method->setAccessible(true); $method->invokeArgs($client, array($error, $errn)); } public function testConfig() { $config = array('url' => 'test:url'); $client = new CurlClient(); $client->setConfig($config); $this->assertEquals($config, $client->getConfig()); } public function testCloseConnection() { $wrapped = new \Tests\YooKassa\Client\ArrayLogger(); $logger = new \YooKassa\Common\LoggerWrapper($wrapped); $curlClientMock = $this->getMockBuilder('YooKassa\Client\CurlClient') ->setMethods(array('closeCurlConnection', 'sendRequest')) ->getMock(); $curlClientMock->setLogger($logger); $curlClientMock->setConfig(array('url' => 'test:url')); $curlClientMock->setKeepAlive(false); $curlClientMock->setShopId(123); $curlClientMock->setShopPassword(234); $curlClientMock->expects($this->once())->method('sendRequest')->willReturn(array( array('Header-Name' => 'HeaderValue'), '{body:sample}', array('http_code' => 200), )); $curlClientMock->expects($this->once())->method('closeCurlConnection'); $curlClientMock->call( '', HttpVerb::HEAD, array('queryParam' => 'value'), 'testBodyValue', array('testHeader' => 'testValue') ); } public function testAuthorizeException() { $this->setExpectedException('YooKassa\Common\Exceptions\AuthorizeException'); $client = new CurlClient(); $client->call( '', HttpVerb::HEAD, array('queryParam' => 'value'), array('httpBody' => 'testValue'), array('testHeader' => 'testValue') ); } public function curlErrorCodeProvider() { return array( array('error message', CURLE_SSL_CACERT), array('error message', CURLE_COULDNT_CONNECT), array('error message', 0), ); } }