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));
 }
コード例 #2
0
 /**
  * @since 2.4
  *
  * @return QueryResultDependencyListResolver
  */
 public function newQueryResultDependencyListResolver()
 {
     $queryResultDependencyListResolver = new QueryResultDependencyListResolver(ApplicationFactory::getInstance()->newPropertyHierarchyLookup());
     $queryResultDependencyListResolver->setPropertyDependencyExemptionlist(ApplicationFactory::getInstance()->getSettings()->get('smwgQueryDependencyPropertyExemptionlist'));
     return $queryResultDependencyListResolver;
 }