public function testExcludePropertyFromDependencyDetection() { $subject = DIWikiPage::newFromText('Foo'); $description = new SomeProperty(new DIProperty('Foobar'), new ValueDescription(DIWikiPage::newFromText('Bar'))); $query = new Query($description); $query->setContextPage($subject); $queryResult = $this->getMockBuilder('\\SMWQueryResult')->disableOriginalConstructor()->getMock(); $queryResult->expects($this->once())->method('getResults')->will($this->returnValue(array())); $queryResult->expects($this->any())->method('getQuery')->will($this->returnValue($query)); $queryResult->expects($this->any())->method('getStore')->will($this->returnValue($this->store)); $propertyHierarchyLookup = $this->getMockBuilder('\\SMW\\PropertyHierarchyLookup')->disableOriginalConstructor()->getMock(); $propertyHierarchyLookup->expects($this->any())->method('hasSubpropertyFor')->will($this->returnValue(true)); $propertyHierarchyLookup->expects($this->at(1))->method('findSubpropertListFor')->with($this->equalTo(new DIProperty('Foobar')))->will($this->returnValue(array(DIWikiPage::newFromText('Subprop', SMW_NS_PROPERTY)))); $instance = new QueryResultDependencyListResolver($propertyHierarchyLookup); $instance->setPropertyDependencyExemptionlist(array('Subprop')); $expected = array(DIWikiPage::newFromText('Foo'), DIWikiPage::newFromText('Bar'), 'Foobar#102#' => DIWikiPage::newFromText('Foobar', SMW_NS_PROPERTY)); $this->assertEquals($expected, $instance->getDependencyListFrom($queryResult)); }
/** * @since 2.4 * * @return QueryResultDependencyListResolver */ public function newQueryResultDependencyListResolver() { $queryResultDependencyListResolver = new QueryResultDependencyListResolver(ApplicationFactory::getInstance()->newPropertyHierarchyLookup()); $queryResultDependencyListResolver->setPropertyDependencyExemptionlist(ApplicationFactory::getInstance()->getSettings()->get('smwgQueryDependencyPropertyExemptionlist')); return $queryResultDependencyListResolver; }