/**
  * @dataProvider diffDataProvider
  */
 public function testDiff($list, $fixedPropertyRecord, $expectedOrdered, $expectedList)
 {
     $instance = new CompositePropertyTableDiffIterator($list);
     $instance->addFixedPropertyRecord($fixedPropertyRecord[0], $fixedPropertyRecord[1]);
     $this->assertInternalType('array', $instance->getFixedPropertyRecords());
     $this->assertEquals($expectedOrdered, $instance->getOrderedDiffByTable());
     $this->assertEquals($expectedList, $instance->getCombinedIdListOfChangedEntities());
 }
 /**
  * @since 2.3
  *
  * @param CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator
  * @param array $propertyDependencyDetectionBlacklist
  *
  * @return array
  */
 public function buildParserCachePurgeJobParametersFrom(CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator, array $propertyDependencyDetectionBlacklist)
 {
     if (!$this->isEnabled()) {
         return array();
     }
     $mapCombinedIdListOfChangedEntities = array_flip($compositePropertyTableDiffIterator->getCombinedIdListOfChangedEntities());
     $mapPropertyDependencyDetectionBlacklist = array_flip($propertyDependencyDetectionBlacklist);
     foreach ($compositePropertyTableDiffIterator->getFixedPropertyRecords() as $table => $record) {
         if (!isset($mapPropertyDependencyDetectionBlacklist[$record['key']])) {
             continue;
         }
         $this->removeBlacklistedPropertyReferencesFromParserCachePurgeJobChangeList($compositePropertyTableDiffIterator, $mapCombinedIdListOfChangedEntities, $table, $record);
     }
     return array('idlist' => array_keys($mapCombinedIdListOfChangedEntities));
 }