/**
  * @dataProvider templateDataProvider
  */
 public function testPreprocessTemplateAndParse($namespace, array $settings, $text, $tmplValue, array $expected)
 {
     $parserOutput = new ParserOutput();
     $title = Title::newFromText(__METHOD__, $namespace);
     $outputText = $this->runTemplateTransclusion($title, $text, $tmplValue);
     $this->applicationFactory->registerObject('Settings', Settings::newFromArray($settings));
     $parserData = new ParserData($title, $parserOutput);
     $instance = new InTextAnnotationParser($parserData, new MagicWordsFinder(), new RedirectTargetFinder());
     $instance->parse($outputText);
     $this->assertContains($expected['resultText'], $outputText);
     $parserData = new ParserData($title, $parserOutput);
     $this->assertInstanceOf('\\SMW\\SemanticData', $parserData->getSemanticData());
     $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData());
 }
 public function testRedirectAnnotationFromInjectedRedirectTarget()
 {
     $namespace = NS_MAIN;
     $text = '';
     $redirectTarget = Title::newFromText('Foo');
     $expected = array('propertyCount' => 1, 'property' => new DIProperty('_REDI'), 'propertyValues' => array('Foo'));
     $settings = array('smwgNamespacesWithSemanticLinks' => array($namespace => true), 'smwgLinksInValues' => false, 'smwgInlineErrors' => true);
     $this->testEnvironment->registerObject('Settings', Settings::newFromArray($settings));
     $parserData = new ParserData(Title::newFromText(__METHOD__, $namespace), new ParserOutput());
     $redirectTargetFinder = new RedirectTargetFinder();
     $instance = new InTextAnnotationParser($parserData, new MagicWordsFinder(), $redirectTargetFinder);
     $instance->setRedirectTarget($redirectTarget);
     $instance->parse($text);
     $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData());
 }