/**
  * @dataProvider setParserProvider
  */
 public function testInstantiatedPropertyValues(array $params, array $expected)
 {
     $parserData = $this->applicationFactory->newParserData(Title::newFromText(__METHOD__), new ParserOutput());
     $messageFormatter = $this->getMockBuilder('\\SMW\\MessageFormatter')->disableOriginalConstructor()->getMock();
     $messageFormatter->expects($this->any())->method('addFromArray')->will($this->returnSelf());
     $instance = new SetParserFunction($parserData, $messageFormatter);
     $instance->parse(ParameterFormatterFactory::newFromArray($params));
     $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData());
 }
 public function testTemplateSupport()
 {
     $params = array('Foo=bar', 'Foo=foobar', 'BarFoo=9001', 'template=FooTemplate');
     $expected = array('errors' => 0, 'propertyCount' => 2, 'propertyLabels' => array('Foo', 'BarFoo'), 'propertyValues' => array('Bar', '9001', 'Foobar'));
     $parserData = $this->applicationFactory->newParserData(Title::newFromText(__METHOD__), new ParserOutput());
     $messageFormatter = $this->getMockBuilder('\\SMW\\MessageFormatter')->disableOriginalConstructor()->getMock();
     $messageFormatter->expects($this->any())->method('addFromArray')->will($this->returnSelf());
     $templateRenderer = new WikitextTemplateRenderer();
     $instance = new SetParserFunction($parserData, $messageFormatter, $templateRenderer);
     $instance->parse(ParameterFormatterFactory::newFromArray($params));
     $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $parserData->getSemanticData());
 }
Example #3
0
 private function getListOfParserFunctionDefinitions()
 {
     $parserFunctionDefinition = array();
     /**
      * {{#ask}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['ask'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newAskParserFunction();
         if (ApplicationFactory::getInstance()->getSettings()->get('smwgQEnabled')) {
             return $instance->parse(func_get_args());
         }
         return $instance->isQueryDisabled();
     };
     /**
      * {{#show}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['show'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newShowParserFunction();
         if (ApplicationFactory::getInstance()->getSettings()->get('smwgQEnabled')) {
             return $instance->parse(func_get_args());
         }
         return $instance->isQueryDisabled();
     };
     /**
      * {{#subobject}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['subobject'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newSubobjectParserFunction();
         return $instance->parse(ParameterFormatterFactory::newFromArray(func_get_args()));
     };
     /**
      * {{#set_recurring_event}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['set_recurring_event'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newRecurringEventsParserFunction();
         return $instance->parse(ParameterFormatterFactory::newFromArray(func_get_args()));
     };
     /**
      * {{#set}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['set'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newSetParserFunction();
         return $instance->parse(ParameterFormatterFactory::newFromArray(func_get_args()));
     };
     /**
      * {{#concept}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['concept'] = function ($parser) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newConceptParserFunction();
         return $instance->parse(func_get_args());
     };
     /**
      * {{#declare}}
      *
      * @since 2.1
      */
     $parserFunctionDefinition['declare'] = function ($parser, $frame, $args) {
         $parserFunctionFactory = ApplicationFactory::getInstance()->newParserFunctionFactory($parser);
         $instance = $parserFunctionFactory->newDeclareParserFunction();
         return $instance->parse($frame, $args);
     };
     return $parserFunctionDefinition;
 }
 /**
  * Helper method that returns a ArrayFormatter object
  *
  * @since 1.9
  *
  * @param array $params
  *
  * @return ArrayFormatter
  */
 private function getInstance(array $params = array())
 {
     return ParameterFormatterFactory::newFromArray($params);
 }