Example #1
0
 /**
  * Getting Guzzle mock response.
  *
  * @param string   $requestUrl      Full API endpoint URL
  * @param mixed    $requestBody     Request body.
  *
  * @return Mock    Guzzle mock response.
  */
 private function getMock($requestUrl, $requestBody)
 {
     if (!is_string($requestBody)) {
         $requestBody = print_r($requestBody, true);
     }
     $filename = self::$settings->mockResponsesDir . md5($requestUrl) . md5($requestBody) . '.inc';
     if (file_exists($filename)) {
         $data = null;
         require $filename;
         $data['headers'] = (array) json_decode(htmlspecialchars_decode($data['headers_json'], ENT_QUOTES));
         $mockResponse = new Response($data['httpCode']);
         $mockResponse->setHeaders($data['headers']);
         $separator = "\r\n\r\n";
         $bodyParts = explode($separator, htmlspecialchars_decode($data['response']), ENT_QUOTES);
         if (count($bodyParts) > 1) {
             $mockResponse->setBody(Stream::factory($bodyParts[count($bodyParts) - 1]));
         } else {
             $mockResponse->setBody(Stream::factory(htmlspecialchars_decode($data['response'])));
         }
         $mock = new Mock([$mockResponse]);
     } else {
         $mockResponse = new Response(404);
         $mock = new Mock([$mockResponse]);
     }
     return $mock;
 }