/** * @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; }