public function testCanSetRouteOptionsSeparately()
 {
     $route = 'api/docs';
     $options = array('query' => 'version=1.1');
     $link = new Link('describedby');
     $link->setRoute($route);
     $link->setRouteOptions($options);
     $this->assertEquals($route, $link->getRoute());
     $this->assertEquals($options, $link->getRouteOptions());
 }
 /**
  * Create a URL from a Link
  *
  * @param  Link $linkDefinition
  * @return array
  * @throws Exception\DomainException if Link is incomplete
  */
 public function fromLink(Link $linkDefinition)
 {
     if (!$linkDefinition->isComplete()) {
         throw new Exception\DomainException(sprintf('Link from resource provided to %s was incomplete; must contain a URL or a route', __METHOD__));
     }
     if ($linkDefinition->hasUrl()) {
         return array('href' => $linkDefinition->getUrl());
     }
     $reuseMatchedParams = true;
     $options = $linkDefinition->getRouteOptions();
     if (isset($options['reuse_matched_params'])) {
         $reuseMatchedParams = (bool) $options['reuse_matched_params'];
         unset($options['reuse_matched_params']);
     }
     $path = call_user_func($this->urlHelper, $linkDefinition->getRoute(), $linkDefinition->getRouteParams(), $options, $reuseMatchedParams);
     if (substr($path, 0, 4) == 'http') {
         return array('href' => $path);
     }
     return array('href' => call_user_func($this->serverUrlHelper, $path));
 }