public function itemChangeProvider()
 {
     $changes = array_filter(TestChanges::getChanges(), function (EntityChange $change) {
         return $change instanceof ItemChange;
     });
     $cases = array_map(function (ItemChange $change) {
         return array($change);
     }, $changes);
     return $cases;
 }
 public function changeProvider()
 {
     $rowClass = $this->getRowClass();
     $changes = array_filter(TestChanges::getChanges(), function (EntityChange $change) use($rowClass) {
         return is_a($change, $rowClass);
     });
     $cases = array_map(function (EntityChange $change) {
         return array($change);
     }, $changes);
     return $cases;
 }
 public function provideHandleChange()
 {
     $changes = TestChanges::getChanges();
     $userEmmy2 = Title::newFromText('User:Emmy2')->getPrefixedText();
     $empty = array('purgeParserCache' => array(), 'scheduleRefreshLinks' => array(), 'purgeWebCache' => array(), 'injectRCRecord' => array());
     $emmy2PurgeParser = array('purgeParserCache' => array('Emmy2' => true), 'scheduleRefreshLinks' => array(), 'purgeWebCache' => array('Emmy2' => true), 'injectRCRecord' => array('Emmy2' => true));
     $userEmmy2PurgeParser = array('purgeParserCache' => array($userEmmy2 => true), 'scheduleRefreshLinks' => array(), 'purgeWebCache' => array($userEmmy2 => true), 'injectRCRecord' => array($userEmmy2 => true));
     $emmyUpdateLinks = array('purgeParserCache' => array('Emmy' => true), 'scheduleRefreshLinks' => array('Emmy' => true), 'purgeWebCache' => array('Emmy' => true), 'injectRCRecord' => array('Emmy' => true));
     $emmy2UpdateLinks = array('purgeParserCache' => array('Emmy2' => true), 'scheduleRefreshLinks' => array('Emmy2' => true), 'purgeWebCache' => array('Emmy2' => true), 'injectRCRecord' => array('Emmy2' => true));
     $emmy2UpdateAll = array('purgeParserCache' => array('Emmy2' => true), 'scheduleRefreshLinks' => array('Emmy2' => true), 'purgeWebCache' => array('Emmy2' => true), 'injectRCRecord' => array('Emmy2' => true));
     return array(array($changes['property-creation'], array('q100' => array()), $empty), array($changes['property-deletion'], array('q100' => array()), $empty), array($changes['property-set-label'], array('q100' => array()), $empty), array($changes['item-creation'], array('q100' => array()), $empty), array($changes['item-deletion'], array('q100' => array()), $empty), array($changes['item-deletion-linked'], array('q100' => array('enwiki' => 'Emmy2')), $emmy2UpdateAll), array($changes['set-de-label'], array('q100' => array('enwiki' => 'Emmy2')), $empty), array($changes['set-en-label'], array('q100' => array('enwiki' => 'Emmy2')), $emmy2PurgeParser), array($changes['set-en-label'], array('q100' => array('enwiki' => 'User:Emmy2')), $userEmmy2PurgeParser), array($changes['set-en-aliases'], array('q100' => array('enwiki' => 'Emmy2')), $empty), array($changes['add-claim'], array('q100' => array('enwiki' => 'Emmy2')), $empty), array($changes['remove-claim'], array('q100' => array('enwiki' => 'Emmy2')), $empty), array($changes['set-dewiki-sitelink'], array('q100' => array()), $empty), array($changes['set-enwiki-sitelink'], array('q100' => array('enwiki' => 'Emmy')), $emmyUpdateLinks), array($changes['change-dewiki-sitelink'], array('q100' => array('enwiki' => 'Emmy')), $emmyUpdateLinks), array($changes['change-enwiki-sitelink'], array('q100' => array('enwiki' => 'Emmy'), 'q200' => array('enwiki' => 'Emmy2')), array('purgeParserCache' => array('Emmy' => true, 'Emmy2' => true), 'scheduleRefreshLinks' => array('Emmy' => true, 'Emmy2' => true), 'purgeWebCache' => array('Emmy' => true, 'Emmy2' => true), 'injectRCRecord' => array('Emmy' => true, 'Emmy2' => true))), array($changes['change-enwiki-sitelink-badges'], array('q100' => array('enwiki' => 'Emmy2')), $emmy2UpdateLinks), array($changes['remove-dewiki-sitelink'], array('q100' => array('enwiki' => 'Emmy2')), $emmy2UpdateLinks), array($changes['remove-enwiki-sitelink'], array('q100' => array('enwiki' => 'Emmy2')), $emmy2UpdateLinks));
 }