public static MeasureDto newMeasure() { return new MeasureDto() .setMetricId(cursor++) .setComponentUuid(String.valueOf(cursor++)) .setAnalysisUuid(String.valueOf(cursor++)) .setData(String.valueOf(cursor++)) .setAlertStatus(String.valueOf(cursor++)) .setAlertText(String.valueOf(cursor++)) .setValue((double) cursor++); }
@Test public void test_getter_and_setter() { underTest .setValue(2d) .setData("text value") .setVariation(1d); assertThat(underTest.getValue()).isEqualTo(2d); assertThat(underTest.getData()).isNotNull(); assertThat(underTest.getVariation()).isEqualTo(1d); }
static void updateMeasureBuilder(Measure.Builder measureBuilder, MetricDto metricDto, MeasureDto measureDto) { Double value = measureDto.getValue(); Double variation = measureDto.getVariation(); updateMeasureBuilder(measureBuilder, metricDto, value == null ? Double.NaN : value, measureDto.getData(), variation == null ? Double.NaN : variation); }
private static MeasureDto toBestValue(MetricDto metric, SnapshotDto analysis) { MeasureDto measure = new MeasureDto() .setMetricId(metric.getId()) .setAnalysisUuid(analysis.getUuid()); if (metric.getKey().startsWith("new_")) { measure.setVariation(metric.getBestValue()); } else { measure.setValue(metric.getBestValue()); } return measure; }
@Test public void toMeasure_maps_data_and_alert_properties_in_dto_for_Boolean_metric() { MeasureDto measureDto = new MeasureDto().setValue(1d).setData(SOME_DATA).setAlertStatus(Level.OK.name()).setAlertText(SOME_ALERT_TEXT); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_BOOLEAN_METRIC); assertThat(measure.isPresent()).isTrue(); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.BOOLEAN); assertThat(measure.get().getBooleanValue()).isTrue(); assertThat(measure.get().getData()).isEqualTo(SOME_DATA); assertThat(measure.get().getQualityGateStatus().getStatus()).isEqualTo(Level.OK); assertThat(measure.get().getQualityGateStatus().getText()).isEqualTo(SOME_ALERT_TEXT); }
public MeasureDto toMeasureDto(Measure measure, Metric metric, Component component) { MeasureDto out = new MeasureDto(); out.setMetricId(metric.getId()); out.setComponentUuid(component.getUuid()); out.setAnalysisUuid(analysisMetadataHolder.getUuid()); if (measure.hasVariation()) { out.setVariation(measure.getVariation()); } if (measure.hasQualityGateStatus()) { setAlert(out, measure.getQualityGateStatus()); } out.setValue(valueAsDouble(measure)); out.setData(data(measure)); return out; }
private static MeasureDto createMeasureDto(int metricId, String componentUuid, String analysisUuid) { return new MeasureDto() .setComponentUuid(componentUuid) .setAnalysisUuid(analysisUuid) .setData(SOME_DATA) .setMetricId(metricId); } }
private static MeasureDto newTextMeasure(String data) { return new MeasureDto().setData(data); } }
private static MeasureDto newNumericMeasure(Double value) { return new MeasureDto().setValue(value); }
@DataProvider public static Object[][] all_types_MeasureDtos() { return new Object[][] { {new MeasureDto().setValue(1d), SOME_BOOLEAN_METRIC}, {new MeasureDto().setValue(1d), SOME_INT_METRIC}, {new MeasureDto().setValue(1d), SOME_LONG_METRIC}, {new MeasureDto().setValue(1d), SOME_DOUBLE_METRIC}, {new MeasureDto().setData("1"), SOME_STRING_METRIC}, {new MeasureDto().setData(Measure.Level.OK.name()), SOME_LEVEL_METRIC} }; }
@Test public void toMeasure_creates_MeasureVariation_and_maps_the_right_one() { MeasureDto measureDto = new MeasureDto() .setData("1") .setVariation(2d); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_STRING_METRIC); assertThat(measure.get().getVariation()).isEqualTo(2); }
@Test(expected = IllegalStateException.class) public void toMeasure_for_LEVEL_Metric_ignores_data() { MeasureDto measureDto = new MeasureDto().setAlertStatus(Level.ERROR.name()).setData(SOME_DATA); Optional<Measure> measure = underTest.toMeasure(measureDto, SOME_LEVEL_METRIC); assertThat(measure).isPresent(); measure.get().getStringValue(); }
@Test public void branch() { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setKey("my_branch")); ComponentDto file = db.components().insertComponent(newFileDto(branch)); SnapshotDto analysis = db.components().insertSnapshot(branch); MeasureDto measure = db.measures().insertMeasure(file, analysis, nclocMetric, m -> m.setValue(2d)); SearchHistoryResponse result = ws.newRequest() .setParam(PARAM_COMPONENT, file.getKey()) .setParam(PARAM_BRANCH, "my_branch") .setParam(PARAM_METRICS, "ncloc") .executeProtobuf(SearchHistoryResponse.class); assertThat(result.getMeasuresList()).extracting(HistoryMeasure::getMetric).hasSize(1); HistoryMeasure historyMeasure = result.getMeasures(0); assertThat(historyMeasure.getMetric()).isEqualTo(nclocMetric.getKey()); assertThat(historyMeasure.getHistoryList()) .extracting(m -> parseDouble(m.getValue())) .containsExactlyInAnyOrder(measure.getValue()); }
private static Measure.NewMeasureBuilder setCommonProperties(Measure.NewMeasureBuilder builder, MeasureDto measureDto) { if (measureDto.getAlertStatus() != null) { Optional<Measure.Level> qualityGateStatus = toLevel(measureDto.getAlertStatus()); if (qualityGateStatus.isPresent()) { builder.setQualityGateStatus(new QualityGateStatus(qualityGateStatus.get(), measureDto.getAlertText())); } } if (hasAnyVariation(measureDto)) { builder.setVariation(measureDto.getVariation()); } return builder; }
private static boolean hasAnyVariation(MeasureDto measureDto) { return measureDto.getVariation() != null; }
@Test public void measures_on_leak_period_are_persisted() { prepareProject(); measureRepository.addRawMeasure(REF_1, INT_METRIC.getKey(), newMeasureBuilder().setVariation(42.0).createNoValue()); TestComputationStepContext context = execute(); MeasureDto persistedMeasure = selectMeasure("project-uuid", INT_METRIC).get(); assertThat(persistedMeasure.getValue()).isNull(); assertThat(persistedMeasure.getVariation()).isEqualTo(42.0); assertNbOfInserts(context, 1); }
private static void setAlert(MeasureDto measureDto, QualityGateStatus qualityGateStatus) { measureDto.setAlertStatus(qualityGateStatus.getStatus().name()); measureDto.setAlertText(qualityGateStatus.getText()); }
@Test public void persist_all_measures_of_portfolio_analysis() { preparePortfolio(); // the computed measures measureRepository.addRawMeasure(REF_1, STRING_METRIC.getKey(), newMeasureBuilder().create("view-value")); measureRepository.addRawMeasure(REF_2, STRING_METRIC.getKey(), newMeasureBuilder().create("subview-value")); measureRepository.addRawMeasure(REF_3, STRING_METRIC.getKey(), newMeasureBuilder().create("project-value")); TestComputationStepContext context = execute(); assertThat(db.countRowsOfTable("project_measures")).isEqualTo(2); assertThat(selectMeasure("view-uuid", STRING_METRIC).get().getData()).isEqualTo("view-value"); assertThat(selectMeasure("subview-uuid", STRING_METRIC).get().getData()).isEqualTo("subview-value"); assertNbOfInserts(context, 2); }