/** * @since 2.4 * * @return QueryResultDependencyListResolver */ public function newQueryResultDependencyListResolver() { $queryResultDependencyListResolver = new QueryResultDependencyListResolver(ApplicationFactory::getInstance()->newPropertyHierarchyLookup()); $queryResultDependencyListResolver->setPropertyDependencyExemptionlist(ApplicationFactory::getInstance()->getSettings()->get('smwgQueryDependencyPropertyExemptionlist')); return $queryResultDependencyListResolver; }
public function testResolveCategoryHierarchy() { $subject = DIWikiPage::newFromText('Foo'); $description = new ClassDescription(DIWikiPage::newFromText('Foocat', NS_CATEGORY)); $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('hasSubcategoryFor')->will($this->returnValue(true)); $propertyHierarchyLookup->expects($this->at(1))->method('findSubcategoryListFor')->with($this->equalTo(DIWikiPage::newFromText('Foocat', NS_CATEGORY)))->will($this->returnValue(array(DIWikiPage::newFromText('Subcat', NS_CATEGORY), DIWikiPage::newFromText('Foocat', NS_CATEGORY)))); $instance = new QueryResultDependencyListResolver($propertyHierarchyLookup); $expected = array(DIWikiPage::newFromText('Foo'), 'Subcat#14#' => DIWikiPage::newFromText('Subcat', NS_CATEGORY), 'Foocat#14#' => DIWikiPage::newFromText('Foocat', NS_CATEGORY), DIWikiPage::newFromText('Foocat', NS_CATEGORY)); $this->assertEquals($expected, $instance->getDependencyListFrom($queryResult)); }