public function it_should_update_existing_route(RouteInterface $route, EventDispatcherInterface $eventDispatcher, RouteInterface $parent)
 {
     $route->getType()->willReturn(RouteInterface::TYPE_COLLECTION);
     $route->getParent()->willReturn($parent);
     $route->getName()->willReturn('test-name');
     $eventDispatcher->dispatch(RouteEvents::PRE_UPDATE, Argument::type(RouteEvent::class))->shouldBeCalled();
     $route->setVariablePattern(Argument::exact('/{slug}'))->shouldBeCalled();
     $route->setRequirement(Argument::exact('slug'), Argument::exact('[a-zA-Z0-9*\\-_\\/]+'))->shouldBeCalled();
     $route->setDefault('slug', null)->shouldBeCalled();
     $route->setStaticPrefix('/test-name')->shouldBeCalled();
     $eventDispatcher->dispatch(RouteEvents::POST_UPDATE, Argument::type(RouteEvent::class))->shouldBeCalled();
     $this->updateRoute($route)->shouldReturn($route);
 }
 /**
  * {@inheritdoc}
  */
 public function resolveFromRoute(RouteInterface $route, $templateName = TemplateNameResolverInterface::TEMPLATE_NAME)
 {
     if (null !== $route->getTemplateName()) {
         $templateName = $route->getTemplateName();
     }
     if (RouteInterface::TYPE_COLLECTION === $route->getType() && null === $route->getTemplateName()) {
         if ($contentTemplateName = $this->getTemplateNameFromRouteContent($route)) {
             $templateName = $contentTemplateName;
         } else {
             throw new NotFoundHttpException(sprintf('There is no template file defined for "%s" route!', $route->getName()));
         }
     } elseif (RouteInterface::TYPE_CONTENT === $route->getType()) {
         if ($contentTemplateName = $this->getTemplateNameFromRouteContent($route)) {
             $templateName = $contentTemplateName;
         }
     }
     return $templateName;
 }
Example #3
0
 /**
  * @param RouteInterface $route
  *
  * @return RouteInterface
  */
 public function fillRoute(RouteInterface $route)
 {
     switch ($route->getType()) {
         case RouteInterface::TYPE_CONTENT:
             $route->setVariablePattern(null);
             $route->setStaticPrefix($this->generatePath($route));
             $route->setRequirements([]);
             break;
         case RouteInterface::TYPE_COLLECTION:
             $route->setVariablePattern('/{slug}');
             $route->setStaticPrefix($this->generatePath($route));
             $route->setRequirement('slug', '[a-zA-Z0-9*\\-_\\/]+');
             $route->setDefault('slug', null);
             break;
         default:
             throw new \InvalidArgumentException(sprintf('Route type "%s" is unsupported!', $route->getType()));
     }
     return $route;
 }