public function setUp()
 {
     parent::setUp();
     $this->db('PHPCR')->createTestNode();
     $this->createRoute(self::ROUTE_ROOT);
     $this->router = $this->getContainer()->get('router');
     $root = $this->getDm()->find(null, self::ROUTE_ROOT);
     // do not set a content here, or we need a valid request and so on...
     $route = new Route();
     $route->setPosition($root, 'testroute');
     $route->setVariablePattern('/{slug}/{id}');
     $route->setDefault('id', '0');
     $route->setRequirement('id', '[0-9]+');
     $route->setDefault(RouteObjectInterface::CONTROLLER_NAME, 'testController');
     //TODO options
     $this->getDm()->persist($route);
     $childroute = new Route();
     $childroute->setPosition($route, 'child');
     $childroute->setDefault(RouteObjectInterface::CONTROLLER_NAME, 'testController');
     $this->getDm()->persist($childroute);
     $formatroute = new Route(array('add_format_pattern' => true));
     $formatroute->setPosition($root, 'format');
     $formatroute->setVariablePattern('/{id}');
     $formatroute->setRequirement('_format', 'html|json');
     $formatroute->setDefault(RouteObjectInterface::CONTROLLER_NAME, 'testController');
     $this->getDm()->persist($formatroute);
     $format2jsonroute = new Route(array('add_format_pattern' => true));
     $format2jsonroute->setPosition($root, 'format2.json');
     $format2jsonroute->setDefault('_format', 'json');
     $format2jsonroute->setRequirement('_format', 'json');
     $format2jsonroute->setDefault(RouteObjectInterface::CONTROLLER_NAME, 'testJsonController');
     $this->getDm()->persist($format2jsonroute);
     $format2route = new Route(array('add_format_pattern' => true));
     $format2route->setPosition($root, 'format2');
     $format2route->setDefault(RouteObjectInterface::CONTROLLER_NAME, 'testController');
     $this->getDm()->persist($format2route);
     $this->getDm()->flush();
 }
 /**
  * Create a route
  * @param Array $routeInfo The route's information. Name, variable pattern, defaults & requirements
  * @return Route
  */
 private function createRoute($routeInfo)
 {
     $route = new Route();
     $route->setParentDocument($this->documentManager->find(null, $this->config['parameters']['londa.basepath.routes']));
     $route->setName($routeInfo['name']);
     if (isset($routeInfo['variable_pattern'])) {
         $route->setVariablePattern($routeInfo['variable_pattern']);
     }
     if (isset($routeInfo['requirements'])) {
         $this->setRouteRequirements($route, $routeInfo['requirements']);
     }
     if (isset($routeInfo['defaults'])) {
         $this->setRouteDefaults($route, $routeInfo['defaults']);
     }
     return $route;
 }