/**
  * Get the expected request that will deliver a response
  *
  * @param $path
  * @param  array   $parameters
  * @param  string  $method
  * @param  array   $headers
  * @param  null    $body
  * @return Request
  */
 protected function getRequest($path, $parameters = [], $method = 'GET', $headers = [], $body = null)
 {
     if ($method == 'POST' || $method == 'PUT' || $method == 'PATCH' || $method == 'DELETE') {
         $headers['Content-Type'] = 'application/json';
     }
     $parameters['api_key'] = 'abcdef';
     $headers['Accept'] = 'application/json';
     $headers['User-Agent'] = sprintf('wtfzdotnet/php-tmdb-api (v%s)', Client::VERSION);
     $request = new Request($path, $method, new ParameterBag($parameters), new ParameterBag($headers));
     $request->setOptions(new ParameterBag(['token' => new ApiToken('abcdef'), 'secure' => true, 'cache' => ['enabled' => true, 'handler' => new FilesystemCache(sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'php-tmdb-api'), 'path' => sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'php-tmdb-api', 'subscriber' => null], 'log' => ['enabled' => false, 'level' => 'debug', 'handler' => null, 'path' => sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'php-tmdb-api.log', 'subscriber' => null], 'adapter' => $this->getMock('Tmdb\\HttpClient\\Adapter\\AdapterInterface'), 'host' => 'api.themoviedb.org/3/', 'base_url' => 'https://api.themoviedb.org/3/', 'session_token' => null, 'event_dispatcher' => $this->eventDispatcher]));
     if ($body !== null) {
         $request->setBody(is_array($body) ? json_encode($body) : $body);
     }
     return $request;
 }
 /**
  * @test
  */
 public function doesSetGetBody()
 {
     $request = new Request();
     $request->setBody('ab');
     $this->assertEquals('ab', $request->getBody());
 }