@Override
  public void execute(ComputationStep.Context context) {
    new DepthTraversalTypeAwareCrawler(
      new TypeAwareVisitorAdapter(CrawlerDepthLimit.PROJECT, PRE_ORDER) {
        @Override
        public void visitProject(Component project) {
          executeForProject(project);
        }
      }).visit(treeRootHolder.getRoot());
  }
@Test
  void new_measure_has_condition_on_leak_period_when_all_conditions_on_specific_metric_has_same_QG_level() {
    int rawValue = 0;
    Condition fixedCondition = createLessThanCondition(INT_METRIC_1, "1");
    Condition periodCondition = createLessThanCondition(INT_METRIC_1, "1");

    qualityGateHolder.setQualityGate(new QualityGate(SOME_QG_UUID, SOME_QG_NAME, of(fixedCondition, periodCondition)));
    Measure measure = newMeasureBuilder().create(rawValue);
    measureRepository.addRawMeasure(PROJECT_REF, INT_METRIC_1_KEY, measure);

    underTest.execute(new TestComputationStepContext());

    Optional<Measure> rawMeasure1 = measureRepository.getAddedRawMeasure(PROJECT_REF, INT_METRIC_1_KEY);
    assertThat(rawMeasure1.get())
      .hasQualityGateLevel(ERROR)
      .hasQualityGateText(dumbResultTextAnswer(periodCondition, ERROR, rawValue));
  }