예제 #1
0
 /**
  * {@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());
 }