/** * @param string[] $lines */ public function replace(LineRangeInterface $range, array $lines) { if (empty($lines)) { return $this->delete($range); } $range = $this->convertIfContainsOriginalLineNumbers($range); $this->modified->replace($range, $lines); $this->lineTracker->deleteLines($range); $this->lineTracker->addLines($this->calculateInsertRange($range->getStart(), $lines)); }
public function it_converts_original_lines_to_modified_lines_when_replacing() { $original = new LineRange(new OriginalLineNumber(3), new OriginalLineNumber(6)); $modified = new LineRange(new ModifiedLineNumber(3), new ModifiedLineNumber(6)); $this->setupRangeConversionTests($original, $modified); $this->lineTracker->deleteLines(Argument::any())->willReturn(); $this->lineTracker->addLines(Argument::any())->willReturn(); $this->modified->replace($modified, Argument::any())->shouldBeCalled(); $this->replace($original, array('x')); }