/** * @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()); }
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); }