/**
  * @param ChangeRow $change
  *
  * @return array
  */
 private function getValues(ChangeRow $change)
 {
     $fields = $change->getFields();
     return array('change_type' => $fields['type'], 'change_time' => isset($fields['time']) ? $fields['time'] : wfTimestampNow(), 'change_object_id' => isset($fields['object_id']) ? $fields['object_id'] : '', 'change_revision_id' => isset($fields['revision_id']) ? $fields['revision_id'] : '0', 'change_user_id' => isset($fields['user_id']) ? $fields['user_id'] : '0', 'change_info' => $change->serializeInfo($fields['info']));
 }
 /**
  * @see ChangeRow::unserializeInfo()
  *
  * Overwritten to use the array representation of the diff.
  *
  * @since 0.4
  * @param string $str
  * @return array the info array
  */
 public function unserializeInfo($str)
 {
     static $factory = null;
     if ($factory == null) {
         $factory = new EntityTypeAwareDiffOpFactory(array($this, 'objectifyArrays'));
     }
     $info = parent::unserializeInfo($str);
     if (isset($info['diff']) && is_array($info['diff'])) {
         $info['diff'] = $factory->newFromArray($info['diff']);
     }
     return $info;
 }
 public function testAlwaysHasIdField()
 {
     $change = new ChangeRow();
     $this->assertTrue($change->hasField('id'));
 }