public function testTryToGetQueryDependencySubjectListForNonSetQueryResult()
 {
     $propertyHierarchyLookup = $this->getMockBuilder('\\SMW\\PropertyHierarchyLookup')->disableOriginalConstructor()->getMock();
     $instance = new EmbeddedQueryDependencyListResolver(null, $propertyHierarchyLookup);
     $this->assertNull($instance->getQueryId());
     $this->assertNull($instance->getSubject());
     $this->assertEmpty($instance->getQueryDependencySubjectList());
 }
 /**
  * This method is called from the `SMW::Store::AfterQueryResultLookupComplete` hook
  * to resolve and update dependencies fetched fro an embedded query and its
  * QueryResult object.
  *
  * @since 2.3
  *
  * @param EmbeddedQueryDependencyListResolver $embeddedQueryDependencyListResolver
  */
 public function addDependencyList(EmbeddedQueryDependencyListResolver $embeddedQueryDependencyListResolver)
 {
     if (!$this->isEnabled() || $embeddedQueryDependencyListResolver->getSubject() === null) {
         return null;
     }
     $subject = $embeddedQueryDependencyListResolver->getSubject();
     $hash = $embeddedQueryDependencyListResolver->getQueryId();
     $sid = $this->getIdForSubject($subject, $hash);
     if ($this->canSuppressUpdateOnSkewFactorFor($sid, $subject)) {
         return wfDebugLog('smw', __METHOD__ . " suppressed (skewed time) for SID " . $sid . "\n");
     }
     $dependencyList = $embeddedQueryDependencyListResolver->getQueryDependencySubjectList();
     if ($dependencyList === array()) {
         return null;
     }
     if ($sid > 0) {
         return $this->updateDependencyList($sid, $dependencyList);
     }
     // SID == 0 means the storage update/process has not been finalized
     // (new object hasn't been registered) hence an event is registered to
     // update the list after the update process has been completed
     // PHP 5.3 compatibility
     $embeddedQueryResultLinksUpdater = $this;
     EventHandler::getInstance()->addCallbackListener('deferred.embedded.query.dep.update', function () use($embeddedQueryResultLinksUpdater, $dependencyList, $subject, $hash) {
         wfDebugLog('smw', __METHOD__ . ' deferred.embedded.query.dep.update for ' . $hash . "\n");
         $embeddedQueryResultLinksUpdater->updateDependencyList($embeddedQueryResultLinksUpdater->getIdForSubject($subject, $hash), $dependencyList);
     });
 }