@Override
  public void execute(ComputationStep.Context context) {
    new PathAwareCrawler<>(
      FormulaExecutorComponentVisitor.newBuilder(metricRepository, measureRepository)
        .buildFor(
          Iterables.concat(NewLinesAndConditionsCoverageFormula.from(newLinesRepository, reportReader), FORMULAS)))
            .visit(treeRootHolder.getRoot());
  }
@Test
  public void zero_measures_when_nothing_has_changed() {
    treeRootHolder.setRoot(FILE_COMPONENT);
    when(newLinesRepository.newLinesAvailable()).thenReturn(true);
    when(newLinesRepository.getNewLines(FILE_COMPONENT)).thenReturn(Optional.of(Collections.emptySet()));

    reportReader.putCoverage(FILE_COMPONENT.getReportAttributes().getRef(),
      asList(
        ScannerReport.LineCoverage.newBuilder().setLine(2).setHits(true).setConditions(1).setCoveredConditions(1).build(),
        ScannerReport.LineCoverage.newBuilder().setLine(3).setHits(true).build()));

    underTest.execute(new TestComputationStepContext());

    verify_only_zero_measures_on_new_lines_and_conditions_measures(FILE_COMPONENT);
  }