Chris@4: containerBuild($container); Chris@4: } Chris@4: } Chris@4: Chris@4: /** Chris@4: * {@inheritdoc} Chris@4: */ Chris@4: public function alter(ContainerBuilder $container) { Chris@4: if (static::$currentTest instanceof KernelTestBase) { Chris@4: static::addRouteProvider($container); Chris@4: } Chris@4: } Chris@4: Chris@4: /** Chris@4: * Add the on demand rebuild route provider service. Chris@4: * Chris@4: * @param \Drupal\Core\DependencyInjection\ContainerBuilder $container Chris@4: */ Chris@4: public static function addRouteProvider(ContainerBuilder $container) { Chris@4: $route_provider_service_name = 'router.route_provider'; Chris@4: // While $container->get() does a recursive resolve, getDefinition() does Chris@4: // not, so do it ourselves. Chris@4: $id = $route_provider_service_name; Chris@4: while ($container->hasAlias($id)) { Chris@4: $id = (string) $container->getAlias($id); Chris@4: } Chris@4: $definition = $container->getDefinition($id); Chris@4: $definition->clearTag('needs_destruction'); Chris@4: $container->setDefinition("simpletest.$route_provider_service_name", $definition); Chris@4: $container->setDefinition($id, new Definition(RouteProvider::class)); Chris@4: } Chris@4: Chris@4: }