/**
  * Return Sitemap Service
  * @param  ServiceLocatorInterface $serviceLocator
  * @return Sitemap
  * @throws \RuntimeException
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->get('Config');
     $config = isset($config['prismic']['sitemaps']) ? $config['prismic']['sitemaps'] : array();
     $sitemap = new Sitemap();
     /**
      * Cache
      */
     if (isset($config['cache'])) {
         $sitemap->setCache($serviceLocator->get($config['cache']));
     }
     if (isset($config['cache_prefix'])) {
         $sitemap->setCachePrefix($config['cache_prefix']);
     }
     if (isset($config['exclude'])) {
         $sitemap->setExclusions($config['exclude']);
     }
     /**
      * API and Context
      */
     $sitemap->setPrismicApi($serviceLocator->get('Prismic\\Api'));
     $sitemap->setContext($serviceLocator->get('NetgluePrismic\\Context'));
     /**
      * Link Generation
      */
     $sitemap->setLinkResolver($serviceLocator->get('NetgluePrismic\\Mvc\\LinkResolver'));
     $sitemap->setLinkGenerator($serviceLocator->get('NetgluePrismic\\Mvc\\LinkGenerator'));
     /**
      * Sitemap Config
      */
     $mapConfig = isset($config['sitemaps']) ? $config['sitemaps'] : array();
     $sitemap->setConfig($mapConfig);
     return $sitemap;
 }
 /**
  * @depends testGetSetCachePrefix
  */
 public function testGetCacheKeyForContainerNameIncludesPrefix(Sitemap $service)
 {
     $this->assertNull($service->getCachePrefix());
     $this->assertSame('NetgluePrismicSitemapContainer-test', $service->getCacheKeyForContainerName('test'));
     $service->setCachePrefix('test');
     $this->assertSame('test-NetgluePrismicSitemapContainer-test', $service->getCacheKeyForContainerName('test'));
     $service->setCachePrefix('');
     $this->assertNull($service->getCachePrefix());
 }