/**
  * @param $jsonString
  * @param $expected
  * @dataProvider jsonStringProvider
  * @throws \LooplineSystems\CloseIoApiWrapper\Library\Exception\InvalidParamException
  */
 public function testSetData($jsonString, $expected)
 {
     $closeIoConfig = new CloseIoConfig();
     $closeIoConfig->setApiKey('testapikey');
     $closeIoApiHandler = new ApiHandler($closeIoConfig);
     $request = new CloseIoRequest($closeIoApiHandler);
     if ($expected === false) {
         $this->setExpectedException('LooplineSystems\\CloseIoApiWrapper\\Library\\Exception\\JsonDecodingException');
         $request->setData($jsonString);
     } else {
         $request->setData($jsonString);
         $this->assertNotEmpty($request->getData());
     }
 }
 /**
  * @param mixed $data
  * @param bool $expected
  * @param string $expectedData
  *
  * @dataProvider jsonStringProvider
  * @throws \LooplineSystems\CloseIoApiWrapper\Library\Exception\InvalidParamException
  */
 public function testSetData($data, $expected, $expectedData = null)
 {
     $closeIoConfig = new CloseIoConfig();
     $closeIoConfig->setApiKey('testapikey');
     $closeIoApiHandler = new ApiHandler($closeIoConfig);
     $request = new CloseIoRequest($closeIoApiHandler);
     if ($expected === false) {
         $this->setExpectedException(InvalidParamException::class);
         $request->setData($data);
     } else {
         $request->setData($data);
         $this->assertEquals($expectedData, $request->getData());
     }
 }
 /**
  * @param string $urlKey
  * @param string $data
  * @param array $urlReplacements
  * @param array $queryParams
  * @return CloseIoRequest
  * @throws InvalidParamException
  */
 protected function prepareRequest($urlKey, $data = null, array $urlReplacements = [], array $queryParams = [])
 {
     $this->apiRequest->clear();
     $this->apiRequest->setData($data);
     $this->apiRequest->setUrl($this->apiHandler->getConfig()->getUrl());
     $url = $this->prepareUrlForKey($urlKey, $urlReplacements);
     if (!empty($queryParams)) {
         $url .= '?' . http_build_query($queryParams);
     }
     $this->apiRequest->setUrl($this->getUrlPrefix() . $url);
     return $this->apiRequest;
 }