/** * {@inheritdoc} */ public function sendRequest($url, $method, array $options = array(), $payload = '') { if (!$this->assertUrl($url)) { return $this->invalidArgumentException('Invalid url given: ' . $url); } if (!$this->assertString($payload)) { return $this->invalidArgumentException('Invalid payload given: ' . $payload); } if (!$this->assertHttpMethod($method)) { return $this->invalidArgumentException('Invalid http method given: ' . $method); } $this->curlOptionsHandler->setOptions($options); $this->curlOptionsHandler->setOption(CURLOPT_RETURNTRANSFER, true); $this->setUrl($url); $this->setMethod($method); $this->setPayload($payload); curl_setopt_array($this->curl, $this->curlOptionsHandler->getOptions()); $curlResponse = $this->execute(); $curlMetaData = (object) curl_getinfo($this->curl); $this->curlOptionsHandler->reset(); function_exists('curl_reset') ? curl_reset($this->curl) : curl_setopt_array($this->curl, $this->curlOptionsHandler->getOptions()); return $this->createResponse($curlResponse, $curlMetaData); }
/** * @test * @group small * @covers ::setOptions * @covers ::getOptions * @covers ::<private> */ public function setGetOptions() { $this->assertInstanceOf(get_class($this->curlOptionsHandler), $this->curlOptionsHandler->setOptions($this->defaultOptions)); $this->assertSame($this->defaultOptions, $this->curlOptionsHandler->getOptions()); }