public function testFindRedirectTargetOnSelfReferencedDataItem() { $store = $this->getMockBuilder('\\SMW\\Store')->disableOriginalConstructor()->setMethods(array('getRedirectTarget'))->getMockForAbstractClass(); $store->expects($this->never())->method('getRedirectTarget'); $circularReferenceGuard = $this->getMockBuilder('\\SMW\\CircularReferenceGuard')->disableOriginalConstructor()->getMock(); $circularReferenceGuard->expects($this->atLeastOnce())->method('isCircularByRecursionFor')->will($this->returnValue(true)); $instance = new RedirectTargetLookup($store, $circularReferenceGuard); $instance->findRedirectTarget(DIWikiPage::newFromText('Foo')); }
/** * Ensures that new redirects are resolved while a value is still kept * in cache (internally it uses getPropertyValues hence we don't loose * much as objects are reused during the lookup). */ private function resolveRedirectTargets(array $results) { $dataItems = array(); foreach ($results as $dataItem) { $dataItems[] = $this->redirectTargetLookup->findRedirectTarget($dataItem); } return $dataItems; }