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