/**
  * @dataProvider provideTransformPageEntityUsages
  */
 public function testTransformPageEntityUsages($relevant, PageEntityUsages $usages, $expected)
 {
     $transformer = new UsageAspectTransformer();
     $idParser = new BasicEntityIdParser();
     foreach ($relevant as $id => $aspects) {
         $transformer->setRelevantAspects($idParser->parse($id), $aspects);
     }
     $transformed = $transformer->transformPageEntityUsages($usages);
     $this->assertEquals($usages->getPageId(), $transformed->getPageId());
     $this->assertEquals($expected, array_keys($transformed->getUsages()));
 }
 /**
  * @param PageEntityUsages[] $usages
  * @param EntityId $entityId
  * @param string[] $changedAspects
  *
  * @return PageEntityUsages[]
  */
 private function transformAllPageEntityUsages(array $usages, EntityId $entityId, array $changedAspects)
 {
     $aspectTransformer = new UsageAspectTransformer();
     $aspectTransformer->setRelevantAspects($entityId, $changedAspects);
     $transformed = array();
     foreach ($usages as $key => $usagesOnPage) {
         $transformedUsagesOnPage = $aspectTransformer->transformPageEntityUsages($usagesOnPage);
         if (!$transformedUsagesOnPage->isEmpty()) {
             $transformed[$key] = $transformedUsagesOnPage;
         }
     }
     return $transformed;
 }