/** * @param ResourceMap $map */ public function modify(ResourceMap $map) { $newMap = $map->getMap(); // Collection of maps that does not exist in the new map. $notCloned = $this->map; foreach ($map->getMap() as $newResource => $oldResource) { foreach ($this->map as $originalNewResource => $initialResource) { $position = array_search($originalNewResource, $newMap[$newResource]); if ($position !== false) { array_splice($newMap[$newResource], $position, 1, $initialResource); unset($notCloned[$originalNewResource]); } } } $this->map = array_merge($newMap, $notCloned); }
public function test_getMapFor_Found_ReturnValues() { $map = new ResourceMap(); $map->map('a', 'b'); $map->map(['a', 'n'], 'c'); $this->assertEquals(['a'], $map->getMapFor('b')); $this->assertEquals(['a', 'n'], $map->getMapFor('c')); }