/**
  * @since 1.9.0.1
  *
  * @param DIWikiPage $subject
  */
 protected function dispatchUpdateForSubject(DIWikiPage $subject)
 {
     Profiler::In(__METHOD__, true);
     $this->addUpdateJobsForProperties($this->store->getProperties($subject));
     $this->addUpdateJobsForProperties($this->store->getInProperties($subject));
     $this->addUpdateJobsFromSerializedData();
     Profiler::Out(__METHOD__, true);
     return $this;
 }
 private function assertInProperties(DIWikiPage $subject, array $semanticdata, $about)
 {
     if (!isset($semanticdata['inproperty-keys'])) {
         return;
     }
     $inProperties = $this->store->getInProperties($subject);
     $this->assertCount(count($semanticdata['inproperty-keys']), $inProperties, 'Failed asserting count for "inproperty-keys" in ' . $about . ' ' . implode(',', $inProperties));
     $inpropertyValues = array();
     foreach ($inProperties as $property) {
         $this->assertContains($property->getKey(), $semanticdata['inproperty-keys'], 'Failed asserting key for "inproperty-keys" in ' . $about);
         if (!isset($semanticdata['inproperty-values'])) {
             continue;
         }
         $values = $this->store->getPropertySubjects($property, $subject);
         foreach ($values as $value) {
             $inpropertyValues[] = $value->getSerialization();
         }
     }
     foreach ($inpropertyValues as $value) {
         $this->assertContains($value, $semanticdata['inproperty-values'], 'Failed asserting values for "inproperty-values" in ' . $about);
     }
 }