public function testMapRoute()
 {
     $restRoute = new Route('/route/one/{id}', array('_controller' => 'anything'), array('id' => '[0-9]+'), array(), '', array(), array('PUT', 'DELETE'));
     $optionsRoute = $this->mapper->mapRoute($restRoute);
     self::assertEquals(array('OPTIONS'), $optionsRoute->getMethods());
     self::assertEquals($restRoute->getRequirement('id'), $optionsRoute->getRequirement('id'));
     self::assertEquals('PUT,DELETE', $optionsRoute->getDefault('allowedMethods'));
     self::assertEquals('_ezpublish_rest.controller.options:getRouteOptions', $optionsRoute->getDefault('_controller'));
 }
 /**
  * Iterates over $restRouteCollection, and returns the corresponding RouteCollection of OPTIONS REST routes
  *
  * @param RouteCollection $restRouteCollection
  * @return RouteCollection
  */
 public function mapCollection(RouteCollection $restRouteCollection)
 {
     $optionsRouteCollection = new RouteCollection();
     foreach ($restRouteCollection->all() as $restRoute) {
         $optionsRouteName = $this->mapper->getOptionsRouteName($restRoute);
         $optionsRoute = $optionsRouteCollection->get($optionsRouteName);
         if ($optionsRoute === null) {
             $optionsRoute = $this->mapper->mapRoute($restRoute);
         } else {
             $optionsRoute = $this->mapper->mergeMethodsDefault($optionsRoute, $restRoute);
         }
         $optionsRouteCollection->add($optionsRouteName, $optionsRoute);
     }
     return $optionsRouteCollection;
 }