/**
  * @since 2.0
  *
  * @return CachedFactbox
  */
 public function newCachedFactbox()
 {
     $applicationFactory = ApplicationFactory::getInstance();
     $cachedFactbox = new CachedFactbox($applicationFactory->getCache($applicationFactory->getSettings()->get('smwgCacheType')));
     // Month = 30 * 24 * 3600
     $cachedFactbox->setExpiryInSeconds(2592000);
     $cachedFactbox->isEnabled($applicationFactory->getSettings()->get('smwgFactboxUseCache'));
     return $cachedFactbox;
 }
 /**
  * @dataProvider outputDataProvider
  */
 public function testProcessAndRetrieveContent($parameters, $expected)
 {
     $this->applicationFactory->getSettings()->set('smwgNamespacesWithSemanticLinks', $parameters['smwgNamespacesWithSemanticLinks']);
     $this->applicationFactory->getSettings()->set('smwgShowFactbox', $parameters['smwgShowFactbox']);
     $this->applicationFactory->registerObject('Store', $parameters['store']);
     $outputPage = $parameters['outputPage'];
     $instance = new CachedFactbox($this->memoryCache, $this->cacheOptions);
     $this->assertEmpty($instance->retrieveContent($outputPage));
     $instance->prepareFactboxContent($outputPage, $parameters['parserOutput']);
     $result = $outputPage->mSMWFactboxText;
     $this->assertPreProcess($expected, $result, $outputPage, $instance);
     // Re-run on the same instance
     $instance->prepareFactboxContent($outputPage, $parameters['parserOutput']);
     $this->assertPostProcess($expected, $result, $outputPage, $instance);
 }