/**
  * @test
  */
 public function should_send_to_url()
 {
     $url = __DIR__ . '/fixtures/food_safety.xml';
     $callback_url = 'https://totalrecalls.dev:443/callbacks/feed_callback';
     $callback_type = 'url';
     $request_uuid = 'foo-bar-foo-bar';
     $dto = new ParseFeedDTO(compact('url', 'callback_url', 'callback_type', 'request_uuid'));
     $parseFeed = new ParseFeed();
     $parseFeed->fire($dto);
     $this->assertNotNull($parseFeed->getDto()->process_results);
 }
 public function fire(ParseFeed $parseFeed)
 {
     $this->parse_feed = $parseFeed;
     try {
         //Guzzle\Http\Message\EntityEnclosingRequest
         $this->callback_response = $this->getCallbackClient()->post($uri = $this->parse_feed->getDto()->callback_url, $headers = [], $postBody = json_encode($this->parse_feed->getDto(), true), $options = ['verify' => false])->send();
         $message = sprintf("Results from post %s", $this->callback_response);
         $this->parse_feed->getDto()->process_results[] = $message;
         $this->parse_feed->getDto()->callback_status = 'OK';
     } catch (BadResponseException $e) {
         $response = $e->getResponse();
         if ($response === null) {
             $message = "Null response from provider";
             $this->parse_feed->getDto()->process_results[] = $message;
         }
         $message = sprintf("Error from provider %s", $e->getResponse()->getStatusCode());
         throw new \Exception($message);
     }
     return $this->parse_feed->getDto();
 }