Browse Source

SONAR-6620 Measure can actually be immutable

this will in turn make adding a update method on MeasureRepository more meaningful
tags/5.2-RC1
Sébastien Lesaint 9 years ago
parent
commit
8a60f3fd67

+ 33
- 31
server/sonar-server/src/main/java/org/sonar/server/computation/measure/BatchMeasureToMeasure.java View File

@@ -28,6 +28,8 @@ import org.sonar.core.rule.RuleDto;
import org.sonar.server.computation.issue.RuleCache;
import org.sonar.server.computation.metric.Metric;

import static com.google.common.base.Optional.of;

public class BatchMeasureToMeasure {
private final RuleCache ruleCache;

@@ -41,7 +43,7 @@ public class BatchMeasureToMeasure {
return Optional.absent();
}

Measure.Builder builder = createBuilder(batchMeasure);
Measure.NewMeasureBuilder builder = createBuilder(batchMeasure);
String data = batchMeasure.hasStringValue() ? batchMeasure.getStringValue() : null;
switch (metric.getType().getValueType()) {
case INT:
@@ -63,82 +65,82 @@ public class BatchMeasureToMeasure {
}
}

private Measure.Builder createBuilder(BatchReport.Measure batchMeasure) {
private Measure.NewMeasureBuilder createBuilder(BatchReport.Measure batchMeasure) {
if (batchMeasure.hasCharactericId() && batchMeasure.hasRuleKey()) {
throw new IllegalArgumentException("Measure with both characteristicId and ruleKey are not supported");
}
if (batchMeasure.hasCharactericId()) {
return Measure.builder().forCharacteristic(batchMeasure.getCharactericId());
return Measure.newMeasure().forCharacteristic(batchMeasure.getCharactericId());
}
if (batchMeasure.hasRuleKey()) {
RuleDto ruleDto = ruleCache.get(RuleKey.parse(batchMeasure.getRuleKey()));
return Measure.builder().forRule(ruleDto.getId());
return Measure.newMeasure().forRule(ruleDto.getId());
}
return Measure.builder();
return Measure.newMeasure();
}

private static Optional<Measure> toIntegerMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
private static Optional<Measure> toIntegerMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
if (!batchMeasure.hasIntValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(batchMeasure.getIntValue(), data), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(batchMeasure.getIntValue(), data));
}

private static Optional<Measure> toLongMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
private static Optional<Measure> toLongMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
if (!batchMeasure.hasLongValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(batchMeasure.getLongValue(), data), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(batchMeasure.getLongValue(), data));
}

private static Optional<Measure> toDoubleMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
private static Optional<Measure> toDoubleMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
if (!batchMeasure.hasDoubleValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(batchMeasure.getDoubleValue(), data), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(batchMeasure.getDoubleValue(), data));
}

private static Optional<Measure> toBooleanMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
private static Optional<Measure> toBooleanMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure, @Nullable String data) {
if (!batchMeasure.hasBooleanValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(batchMeasure.getBooleanValue(), data), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(batchMeasure.getBooleanValue(), data));
}

private static Optional<Measure> toStringMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure) {
private static Optional<Measure> toStringMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure) {
if (!batchMeasure.hasStringValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(batchMeasure.getStringValue()), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(batchMeasure.getStringValue()));
}
private static Optional<Measure> toLevelMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure) {
private static Optional<Measure> toLevelMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure) {
if (!batchMeasure.hasStringValue()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
Optional<Measure.Level> level = Measure.Level.toLevel(batchMeasure.getStringValue());
if (!level.isPresent()) {
return toMeasure(builder.createNoValue(), batchMeasure);
return toNoValueMeasure(builder, batchMeasure);
}
return toMeasure(builder.create(level.get()), batchMeasure);
return of(setCommonProperties(builder, batchMeasure).create(level.get()));
}

private static Optional<Measure> toNoValueMeasure(Measure.Builder builder, BatchReport.Measure batchMeasure) {
return toMeasure(builder.createNoValue(), batchMeasure);
private static Optional<Measure> toNoValueMeasure(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure) {
return of(setCommonProperties(builder, batchMeasure).createNoValue());
}

private static Optional<Measure> toMeasure(Measure measure, BatchReport.Measure batchMeasure) {
if (batchMeasure.hasAlertStatus() && !measure.hasQualityGateStatus()) {
private static Measure.NewMeasureBuilder setCommonProperties(Measure.NewMeasureBuilder builder, BatchReport.Measure batchMeasure) {
if (batchMeasure.hasAlertStatus()) {
Optional<Measure.Level> qualityGateStatus = Measure.Level.toLevel(batchMeasure.getAlertStatus());
if (qualityGateStatus.isPresent()) {
String text = batchMeasure.hasAlertText() ? batchMeasure.getAlertText() : null;
measure.setQualityGateStatus(new QualityGateStatus(qualityGateStatus.get(), text));
builder.setQualityGateStatus(new QualityGateStatus(qualityGateStatus.get(), text));
}
}
if (hasAnyVariation(batchMeasure)) {
measure.setVariations(createVariations(batchMeasure));
builder.setVariations(createVariations(batchMeasure));
}
return Optional.of((Measure) measure);
return builder;
}

private static boolean hasAnyVariation(BatchReport.Measure batchMeasure) {

+ 83
- 34
server/sonar-server/src/main/java/org/sonar/server/computation/measure/Measure.java View File

@@ -76,13 +76,13 @@ public final class Measure {
@CheckForNull
private final String description;
@CheckForNull
private QualityGateStatus qualityGateStatus;
private final QualityGateStatus qualityGateStatus;
@CheckForNull
private MeasureVariations variations;
private final MeasureVariations variations;

private Measure(ValueType valueType, @Nullable Integer ruleId, @Nullable Integer characteristicId,
@Nullable Double value, @Nullable String data, @Nullable Level dataLevel,
@Nullable String description) {
@Nullable String description, @Nullable QualityGateStatus qualityGateStatus, @Nullable MeasureVariations variations) {
this.valueType = valueType;
this.ruleId = ruleId;
this.characteristicId = characteristicId;
@@ -90,17 +90,26 @@ public final class Measure {
this.data = data;
this.dataLevel = dataLevel;
this.description = description;
this.qualityGateStatus = qualityGateStatus;
this.variations = variations;
}

public static Builder builder() {
return new Builder();
public static NewMeasureBuilder newMeasure() {
return new NewMeasureBuilder();
}

public static final class Builder {
public static final String RULE_AND_CHARACTERISTIC_ERROR_MSG = "A measure can not be associated to both a Characteristic and a Rule";
public static UpdateMeasureBuilder updateMeasure(Measure measure) {
return new UpdateMeasureBuilder(measure);
}

public static final class NewMeasureBuilder {
private static final String RULE_AND_CHARACTERISTIC_ERROR_MSG = "A measure can not be associated to both a Characteristic and a Rule";

private Integer ruleId;
private Integer characteristicId;
private String description;
private QualityGateStatus qualityGateStatus;
private MeasureVariations variations;

/**
* Sets the rule this measure is associated to.
@@ -109,7 +118,7 @@ public final class Measure {
*
* @see #forCharacteristic(int)
*/
public Builder forRule(int ruleId) {
public NewMeasureBuilder forRule(int ruleId) {
if (characteristicId != null) {
throw new UnsupportedOperationException(RULE_AND_CHARACTERISTIC_ERROR_MSG);
}
@@ -124,7 +133,7 @@ public final class Measure {
*
* @see #forCharacteristic(int)
*/
public Builder forCharacteristic(int characteristicId) {
public NewMeasureBuilder forCharacteristic(int characteristicId) {
if (ruleId != null) {
throw new UnsupportedOperationException(RULE_AND_CHARACTERISTIC_ERROR_MSG);
}
@@ -137,37 +146,93 @@ public final class Measure {
*
* @throws NullPointerException if the specified argument is {@code null}
*/
public Builder withDescription(String description) {
public NewMeasureBuilder setDescription(String description) {
this.description = requireNonNull(description, "description can not be set to null");
return this;
}

public NewMeasureBuilder setQualityGateStatus(QualityGateStatus qualityGateStatus) {
this.qualityGateStatus = requireNonNull(qualityGateStatus, "QualityGateStatus can not be set to null");
return this;
}

public NewMeasureBuilder setVariations(MeasureVariations variations) {
this.variations = requireNonNull(variations, "Variations can not be set to null");
return this;
}

public Measure create(boolean value, @Nullable String data) {
return new Measure(ValueType.BOOLEAN, ruleId, characteristicId, value ? 1.0d : 0.0d, data, null, description);
return new Measure(ValueType.BOOLEAN, ruleId, characteristicId, value ? 1.0d : 0.0d, data, null, description, qualityGateStatus, variations);
}

public Measure create(int value, @Nullable String data) {
return new Measure(ValueType.INT, ruleId, characteristicId, (double) value, data, null, description);
return new Measure(ValueType.INT, ruleId, characteristicId, (double) value, data, null, description, qualityGateStatus, variations);
}

public Measure create(long value, @Nullable String data) {
return new Measure(ValueType.LONG, ruleId, characteristicId, (double) value, data, null, description);
return new Measure(ValueType.LONG, ruleId, characteristicId, (double) value, data, null, description, qualityGateStatus, variations);
}

public Measure create(double value, @Nullable String data) {
return new Measure(ValueType.DOUBLE, ruleId, characteristicId, value, data, null, description);
return new Measure(ValueType.DOUBLE, ruleId, characteristicId, value, data, null, description, qualityGateStatus, variations);
}

public Measure create(String value) {
return new Measure(ValueType.STRING, ruleId, characteristicId, null, requireNonNull(value), null, description);
return new Measure(ValueType.STRING, ruleId, characteristicId, null, requireNonNull(value), null, description, qualityGateStatus, variations);
}

public Measure create(Level level) {
return new Measure(ValueType.LEVEL, ruleId, characteristicId, null, null, requireNonNull(level), description);
return new Measure(ValueType.LEVEL, ruleId, characteristicId, null, null, requireNonNull(level), description, qualityGateStatus, variations);
}

public Measure createNoValue() {
return new Measure(ValueType.NO_VALUE, ruleId, characteristicId, null, null, null, description);
return new Measure(ValueType.NO_VALUE, ruleId, characteristicId, null, null, null, description, qualityGateStatus, variations);
}
}

public static final class UpdateMeasureBuilder {
private final Measure source;
private QualityGateStatus qualityGateStatus;
private MeasureVariations variations;

public UpdateMeasureBuilder(Measure source) {
this.source = requireNonNull(source, "Can not create a measure from null");
}

/**
* Sets the QualityGateStatus of the updated Measure to create.
*
* @throws NullPointerException if the specified {@link QualityGateStatus} is {@code null}
* @throws UnsupportedOperationException if the source measure already has a {@link QualityGateStatus}
*/
public UpdateMeasureBuilder setQualityGateStatus(QualityGateStatus qualityGateStatus) {
if (source.qualityGateStatus != null) {
throw new UnsupportedOperationException("QualityGate status can not be changed if already set on source Measure");
}
this.qualityGateStatus = requireNonNull(qualityGateStatus, "QualityGateStatus can not be set to null");
return this;
}

/**
* Sets the MeasureVariations of the updated Measure to create.
*
* @throws NullPointerException if the specified {@link MeasureVariations} is {@code null}
* @throws UnsupportedOperationException if the source measure already has a {@link MeasureVariations}
*/
public UpdateMeasureBuilder setVariations(MeasureVariations variations) {
if (source.variations != null) {
throw new UnsupportedOperationException("Variations can not be changed if already set on source Measure");
}
this.variations = requireNonNull(variations, "Variations can not be set to null");
return this;
}

public Measure create() {
return new Measure(source.valueType, source.ruleId, source.characteristicId,
source.value, source.data, source.dataLevel,
source.description,
source.qualityGateStatus == null ? qualityGateStatus : source.qualityGateStatus,
source.variations == null ? variations : source.variations);
}
}

@@ -269,11 +334,6 @@ public final class Measure {
}
}

public Measure setQualityGateStatus(QualityGateStatus qualityGateStatus) {
this.qualityGateStatus = requireNonNull(qualityGateStatus, "Can not set a null QualityGate status");
return this;
}

/**
* Any Measure, which ever is its value type, can have a QualityGate status.
*/
@@ -292,17 +352,6 @@ public final class Measure {
return this.qualityGateStatus;
}

/**
* Sets the variations of this Measure.
*
* @throws NullPointerException if the specified argument is {@code null}
* @throws IllegalStateException if the variations have already been set
*/
public Measure setVariations(MeasureVariations variations) {
this.variations = requireNonNull(variations, "Can not set null MeasureVariations");
return this;
}

/**
* Any Measure, which ever is its value type, can have a Variations.
*/
@@ -330,7 +379,7 @@ public final class Measure {

/**
* a Metric is equal to another Metric if it has the same ruleId/characteristicId paar (both being potentially
* {@code null} but only one of them can be non {@code null}.
* {@code null} but only one of them can be non {@code null}).
*/
@Override
public boolean equals(@Nullable Object o) {

+ 20
- 19
server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureDtoToMeasure.java View File

@@ -24,6 +24,7 @@ import javax.annotation.Nullable;
import org.sonar.core.measure.db.MeasureDto;
import org.sonar.server.computation.metric.Metric;

import static com.google.common.base.Optional.of;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
import static org.sonar.server.computation.measure.Measure.Level.toLevel;
@@ -62,66 +63,66 @@ public class MeasureDtoToMeasure {

private static Optional<Measure> toIntegerMeasure(MeasureDto measureDto, @Nullable Double value, String data) {
if (value == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(value.intValue(), data), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(value.intValue(), data));
}

private static Optional<Measure> toLongMeasure(MeasureDto measureDto, @Nullable Double value, String data) {
if (value == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(value.longValue(), data), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(value.longValue(), data));
}

private static Optional<Measure> toDoubleMeasure(MeasureDto measureDto, @Nullable Double value, String data) {
if (value == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(value.doubleValue(), data), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(value.doubleValue(), data));
}

private static Optional<Measure> toBooleanMeasure(MeasureDto measureDto, @Nullable Double value, String data) {
if (value == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(value == 1.0d, data), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(value == 1.0d, data));
}

private static Optional<Measure> toStringMeasure(MeasureDto measureDto, @Nullable String data) {
if (data == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(data), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(data));
}

private static Optional<Measure> toLevelMeasure(MeasureDto measureDto, @Nullable String data) {
if (data == null) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
Optional<Measure.Level> level = toLevel(data);
if (!level.isPresent()) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return toNoValueMeasure(measureDto);
}
return toMeasure(Measure.builder().create(level.get()), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).create(level.get()));
}

private static Optional<Measure> toNoValueMeasure(MeasureDto measureDto) {
return toMeasure(Measure.builder().createNoValue(), measureDto);
return of(setCommonProperties(Measure.newMeasure(), measureDto).createNoValue());
}

private static Optional<Measure> toMeasure(Measure measure, MeasureDto measureDto) {
if (measureDto.getAlertStatus() != null && !measure.hasQualityGateStatus()) {
private static Measure.NewMeasureBuilder setCommonProperties(Measure.NewMeasureBuilder builder, MeasureDto measureDto) {
if (measureDto.getAlertStatus() != null) {
Optional<Measure.Level> qualityGateStatus = toLevel(measureDto.getAlertStatus());
if (qualityGateStatus.isPresent()) {
measure.setQualityGateStatus(new QualityGateStatus(qualityGateStatus.get(), measureDto.getAlertText()));
builder.setQualityGateStatus(new QualityGateStatus(qualityGateStatus.get(), measureDto.getAlertText()));
}
}
if (hasAnyVariation(measureDto)) {
measure.setVariations(createVariations(measureDto));
builder.setVariations(createVariations(measureDto));
}

return Optional.of((Measure) measure);
return builder;
}

private static boolean hasAnyVariation(MeasureDto measureDto) {

+ 7
- 7
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java View File

@@ -74,7 +74,7 @@ public class MeasureRepositoryImplTest {
private static final long LAST_SNAPSHOT_ID = 123;
private static final long OTHER_SNAPSHOT_ID = 369;
private static final long COMPONENT_ID = 567;
private static final Measure SOME_MEASURE = Measure.builder().create(Measure.Level.OK);
private static final Measure SOME_MEASURE = Measure.newMeasure().create(Measure.Level.OK);
private static final String SOME_DATA = "some data";
private static final RuleDto SOME_RULE = RuleDto.createFor(RuleKey.of("A", "1")).setId(963);
private static final Characteristic SOME_CHARACTERISTIC = new Characteristic(741, "key");
@@ -267,10 +267,10 @@ public class MeasureRepositoryImplTest {

@Test
public void getRawMeasure_for_rule_returns_measure_for_specified_rule() {
Measure measure = Measure.builder().forRule(SOME_RULE.getId()).createNoValue();
Measure measure = Measure.newMeasure().forRule(SOME_RULE.getId()).createNoValue();

underTest.add(FILE_COMPONENT, metric1, measure);
underTest.add(FILE_COMPONENT, metric1, Measure.builder().forRule(222).createNoValue());
underTest.add(FILE_COMPONENT, metric1, Measure.newMeasure().forRule(222).createNoValue());

assertThat(underTest.getRawMeasure(FILE_COMPONENT, metric1, SOME_RULE).get()).isSameAs(measure);
}
@@ -297,10 +297,10 @@ public class MeasureRepositoryImplTest {

@Test
public void getRawMeasure_for_characteristic_returns_measure_for_specified_rule() {
Measure measure = Measure.builder().forCharacteristic(SOME_CHARACTERISTIC.getId()).createNoValue();
Measure measure = Measure.newMeasure().forCharacteristic(SOME_CHARACTERISTIC.getId()).createNoValue();

underTest.add(FILE_COMPONENT, metric1, measure);
underTest.add(FILE_COMPONENT, metric1, Measure.builder().forCharacteristic(333).createNoValue());
underTest.add(FILE_COMPONENT, metric1, Measure.newMeasure().forCharacteristic(333).createNoValue());

assertThat(underTest.getRawMeasure(FILE_COMPONENT, metric1, SOME_CHARACTERISTIC).get()).isSameAs(measure);
}
@@ -313,14 +313,14 @@ public class MeasureRepositoryImplTest {

Measure addedMeasure = SOME_MEASURE;
underTest.add(FILE_COMPONENT, metric1, addedMeasure);
Measure addedMeasure2 = Measure.builder().forCharacteristic(SOME_CHARACTERISTIC.getId()).createNoValue();
Measure addedMeasure2 = Measure.newMeasure().forCharacteristic(SOME_CHARACTERISTIC.getId()).createNoValue();
underTest.add(FILE_COMPONENT, metric1, addedMeasure2);

SetMultimap<String, Measure> rawMeasures = underTest.getRawMeasures(FILE_COMPONENT);

assertThat(rawMeasures.keySet()).hasSize(2);
assertThat(rawMeasures.get(METRIC_KEY_1)).containsOnly(addedMeasure, addedMeasure2);
assertThat(rawMeasures.get(METRIC_KEY_2)).containsOnly(Measure.builder().create("some value"));
assertThat(rawMeasures.get(METRIC_KEY_2)).containsOnly(Measure.newMeasure().create("some value"));
}

private static MeasureDto createMeasureDto(int metricId, long snapshotId) {

+ 78
- 33
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureTest.java View File

@@ -36,19 +36,18 @@ import org.sonar.server.computation.measure.Measure.ValueType;

import static com.google.common.collect.FluentIterable.from;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.server.computation.measure.Measure.builder;

@RunWith(DataProviderRunner.class)
public class MeasureTest {

private static final Measure INT_MEASURE = builder().create((int) 1, null);
private static final Measure LONG_MEASURE = builder().create(1l, null);
private static final Measure DOUBLE_MEASURE = builder().create(1d, null);
private static final Measure STRING_MEASURE = builder().create("some_sT ring");
private static final Measure TRUE_MEASURE = builder().create(true, null);
private static final Measure FALSE_MEASURE = builder().create(false, null);
private static final Measure LEVEL_MEASURE = builder().create(Measure.Level.OK);
private static final Measure NO_VALUE_MEASURE = builder().createNoValue();
private static final Measure INT_MEASURE = Measure.newMeasure().create((int) 1, null);
private static final Measure LONG_MEASURE = Measure.newMeasure().create(1l, null);
private static final Measure DOUBLE_MEASURE = Measure.newMeasure().create(1d, null);
private static final Measure STRING_MEASURE = Measure.newMeasure().create("some_sT ring");
private static final Measure TRUE_MEASURE = Measure.newMeasure().create(true, null);
private static final Measure FALSE_MEASURE = Measure.newMeasure().create(false, null);
private static final Measure LEVEL_MEASURE = Measure.newMeasure().create(Measure.Level.OK);
private static final Measure NO_VALUE_MEASURE = Measure.newMeasure().createNoValue();

private static final List<Measure> MEASURES = ImmutableList.of(
INT_MEASURE, LONG_MEASURE, DOUBLE_MEASURE, STRING_MEASURE, TRUE_MEASURE, FALSE_MEASURE, NO_VALUE_MEASURE, LEVEL_MEASURE
@@ -110,7 +109,7 @@ public class MeasureTest {
executionException.expect(UnsupportedOperationException.class);
executionException.expectMessage("A measure can not be associated to both a Characteristic and a Rule");

builder().forCharacteristic(SOME_CHARACTERISTIC_ID).forRule(SOME_RULE_ID);
Measure.newMeasure().forCharacteristic(SOME_CHARACTERISTIC_ID).forRule(SOME_RULE_ID);
}

@Test
@@ -118,34 +117,34 @@ public class MeasureTest {
executionException.expect(UnsupportedOperationException.class);
executionException.expectMessage("A measure can not be associated to both a Characteristic and a Rule");

builder().forRule(SOME_RULE_ID).forCharacteristic(SOME_CHARACTERISTIC_ID);
Measure.newMeasure().forRule(SOME_RULE_ID).forCharacteristic(SOME_CHARACTERISTIC_ID);
}

@Test
public void getRuleId_returns_null_when_ruleKey_has_not_been_set() {
assertThat(builder().createNoValue().getRuleId()).isNull();
assertThat(builder().forCharacteristic(SOME_CHARACTERISTIC_ID).createNoValue().getRuleId()).isNull();
assertThat(Measure.newMeasure().createNoValue().getRuleId()).isNull();
assertThat(Measure.newMeasure().forCharacteristic(SOME_CHARACTERISTIC_ID).createNoValue().getRuleId()).isNull();
}

@Test
public void getRuleId_returns_key_set_in_builder() {
assertThat(builder().forRule(SOME_RULE_ID).createNoValue().getRuleId()).isEqualTo(SOME_RULE_ID);
assertThat(Measure.newMeasure().forRule(SOME_RULE_ID).createNoValue().getRuleId()).isEqualTo(SOME_RULE_ID);
}

@Test
public void getCharacteristicId_returns_null_when_ruleKey_has_not_been_set() {
assertThat(builder().createNoValue().getCharacteristicId()).isNull();
assertThat(builder().forRule(SOME_RULE_ID).createNoValue().getCharacteristicId()).isNull();
assertThat(Measure.newMeasure().createNoValue().getCharacteristicId()).isNull();
assertThat(Measure.newMeasure().forRule(SOME_RULE_ID).createNoValue().getCharacteristicId()).isNull();
}

@Test
public void getCharacteristicId_returns_id_set_in_builder() {
assertThat(builder().forCharacteristic(SOME_CHARACTERISTIC_ID).createNoValue().getCharacteristicId()).isEqualTo(SOME_CHARACTERISTIC_ID);
assertThat(Measure.newMeasure().forCharacteristic(SOME_CHARACTERISTIC_ID).createNoValue().getCharacteristicId()).isEqualTo(SOME_CHARACTERISTIC_ID);
}

@Test(expected = NullPointerException.class)
public void create_from_String_throws_NPE_if_arg_is_null() {
builder().create((String) null);
Measure.newMeasure().create((String) null);
}

@Test
@@ -260,33 +259,79 @@ public class MeasureTest {
}

@Test
public void getAlertStatus_returns_argument_from_setAlertStatus() {
public void getAlertStatus_returns_argument_from_setQualityGateStatus() {
QualityGateStatus someStatus = new QualityGateStatus(Measure.Level.OK);

assertThat(builder().create(true, null).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create(false, null).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create((int) 1, null).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create((long) 1, null).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create((double) 1, null).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create("str").setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(builder().create(Measure.Level.OK).setQualityGateStatus(someStatus).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create(true, null).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create(false, null).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create((int) 1, null).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create((long) 1, null).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create((double) 1, null).getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create("str").getQualityGateStatus()).isEqualTo(someStatus);
assertThat(Measure.newMeasure().setQualityGateStatus(someStatus).create(Measure.Level.OK).getQualityGateStatus()).isEqualTo(someStatus);
}

@Test(expected = NullPointerException.class)
public void newMeasureBuilder_setQualityGateStatus_throws_NPE_if_arg_is_null() {
Measure.newMeasure().setQualityGateStatus(null);
}

@Test(expected = NullPointerException.class)
public void newMeasureBuilder_setVariations_throws_NPE_if_arg_is_null() {
Measure.newMeasure().setVariations(null);
}

@Test(expected = NullPointerException.class)
public void newMeasureBuilder_setDescription_throws_NPE_if_arg_is_null() {
Measure.newMeasure().setDescription(null);
}

@Test(expected = NullPointerException.class)
public void updateMeasureBuilder_setQualityGateStatus_throws_NPE_if_arg_is_null() {
Measure.updateMeasure(Measure.newMeasure().createNoValue()).setQualityGateStatus(null);
}

@Test(expected = NullPointerException.class)
public void updateMeasureBuilder_setVariations_throws_NPE_if_arg_is_null() {
Measure.updateMeasure(Measure.newMeasure().createNoValue()).setVariations(null);
}

@Test(expected = UnsupportedOperationException.class)
public void updateMeasureBuilder_setQualityGateStatus_throws_USO_if_measure_already_has_a_QualityGateStatus() {
QualityGateStatus qualityGateStatus = new QualityGateStatus(Measure.Level.ERROR);

Measure.updateMeasure(Measure.newMeasure().setQualityGateStatus(qualityGateStatus).createNoValue()).setQualityGateStatus(qualityGateStatus);
}

@Test(expected = UnsupportedOperationException.class)
public void updateMeasureBuilder_setVariations_throws_USO_if_measure_already_has_Variations() {
MeasureVariations variations = new MeasureVariations(1d);

Measure.updateMeasure(Measure.newMeasure().setVariations(variations).createNoValue()).setVariations(variations);
}

@Test
@UseDataProvider("all")
public void setAlertStatus_throws_NPE_if_arg_is_null(Measure measure) {
measure.setQualityGateStatus(null);
public void updateMeasureBuilder_creates_Measure_with_same_immutable_properties(Measure measure) {
Measure newMeasure = Measure.updateMeasure(measure).create();

assertThat(newMeasure.getValueType()).isEqualTo(measure.getValueType());
assertThat(newMeasure.getRuleId()).isEqualTo(measure.getRuleId());
assertThat(newMeasure.getCharacteristicId()).isEqualTo(measure.getCharacteristicId());
assertThat(newMeasure.getDescription()).isEqualTo(measure.getDescription());
assertThat(newMeasure.hasQualityGateStatus()).isEqualTo(measure.hasQualityGateStatus());
assertThat(newMeasure.hasVariations()).isEqualTo(measure.hasVariations());
}

@Test
public void getData_returns_argument_from_factory_method() {
String someData = "lololool";

assertThat(builder().create(true, someData).getData()).isEqualTo(someData);
assertThat(builder().create(false, someData).getData()).isEqualTo(someData);
assertThat(builder().create((int) 1, someData).getData()).isEqualTo(someData);
assertThat(builder().create((long) 1, someData).getData()).isEqualTo(someData);
assertThat(builder().create((double) 1, someData).getData()).isEqualTo(someData);
assertThat(Measure.newMeasure().create(true, someData).getData()).isEqualTo(someData);
assertThat(Measure.newMeasure().create(false, someData).getData()).isEqualTo(someData);
assertThat(Measure.newMeasure().create((int) 1, someData).getData()).isEqualTo(someData);
assertThat(Measure.newMeasure().create((long) 1, someData).getData()).isEqualTo(someData);
assertThat(Measure.newMeasure().create((double) 1, someData).getData()).isEqualTo(someData);
}

@Test

+ 20
- 22
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureToMeasureDtoTest.java View File

@@ -54,18 +54,18 @@ public class MeasureToMeasureDtoTest {

@Test(expected = NullPointerException.class)
public void toMeasureDto_throws_NPE_if_Metric_arg_is_null() {
underTest.toMeasureDto(Measure.builder().createNoValue(), null, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
underTest.toMeasureDto(Measure.newMeasure().createNoValue(), null, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
}

@DataProvider
public static Object[][] all_types_Measures() {
return new Object[][] {
{ Measure.builder().create(true, SOME_DATA), SOME_BOOLEAN_METRIC},
{ Measure.builder().create(1, SOME_DATA), SOME_INT_METRIC},
{ Measure.builder().create((long) 1, SOME_DATA), SOME_LONG_METRIC},
{ Measure.builder().create((double) 2, SOME_DATA), SOME_DOUBLE_METRIC},
{ Measure.builder().create(SOME_STRING), SOME_STRING_METRIC},
{ Measure.builder().create(Measure.Level.OK), SOME_LEVEL_METRIC}
{ Measure.newMeasure().create(true, SOME_DATA), SOME_BOOLEAN_METRIC},
{ Measure.newMeasure().create(1, SOME_DATA), SOME_INT_METRIC},
{ Measure.newMeasure().create((long) 1, SOME_DATA), SOME_LONG_METRIC},
{ Measure.newMeasure().create((double) 2, SOME_DATA), SOME_DOUBLE_METRIC},
{ Measure.newMeasure().create(SOME_STRING), SOME_STRING_METRIC},
{ Measure.newMeasure().create(Measure.Level.OK), SOME_LEVEL_METRIC}
};
}

@@ -82,9 +82,8 @@ public class MeasureToMeasureDtoTest {
}

@Test
@UseDataProvider("all_types_Measures")
public void toMeasureDto_returns_Dto_with_variation_if_Measure_has_MeasureVariations(Measure measure, Metric metric) {
MeasureDto measureDto = underTest.toMeasureDto(measure.setVariations(SOME_VARIATIONS), metric, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
public void toMeasureDto_returns_Dto_with_variation_if_Measure_has_MeasureVariations() {
MeasureDto measureDto = underTest.toMeasureDto(Measure.newMeasure().setVariations(SOME_VARIATIONS).create(SOME_STRING), SOME_STRING_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(measureDto.getVariation(1)).isEqualTo(1d);
assertThat(measureDto.getVariation(2)).isEqualTo(2d);
@@ -103,10 +102,9 @@ public class MeasureToMeasureDtoTest {
}

@Test
@UseDataProvider("all_types_Measures")
public void toMeasureDto_returns_Dto_with_alertStatus_and_alertText_if_Measure_has_QualityGateStatus(Measure measure, Metric metric) {
public void toMeasureDto_returns_Dto_with_alertStatus_and_alertText_if_Measure_has_QualityGateStatus() {
String alertText = "some error";
MeasureDto measureDto = underTest.toMeasureDto(measure.setQualityGateStatus(new QualityGateStatus(Measure.Level.ERROR, alertText)), metric, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto measureDto = underTest.toMeasureDto(Measure.newMeasure().setQualityGateStatus(new QualityGateStatus(Measure.Level.ERROR, alertText)).create(SOME_STRING), SOME_STRING_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(measureDto.getAlertStatus()).isEqualTo(Measure.Level.ERROR.name());
assertThat(measureDto.getAlertText()).isEqualTo(alertText);
@@ -120,7 +118,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_sets_ruleId_if_set_in_Measure() {
Measure measure = Measure.builder().forRule(42).createNoValue();
Measure measure = Measure.newMeasure().forRule(42).createNoValue();

assertThat(underTest.toMeasureDto(measure, SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID).getRuleId()).isEqualTo(42);
}
@@ -133,7 +131,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_sets_characteristicId_if_set_in_Measure() {
Measure measure = Measure.builder().forCharacteristic(42).createNoValue();
Measure measure = Measure.newMeasure().forCharacteristic(42).createNoValue();

assertThat(underTest.toMeasureDto(measure, SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID).getCharacteristicId()).isEqualTo(42);
}
@@ -157,12 +155,12 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_value_to_1_or_0_and_data_from_data_field_for_BOOLEAN_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create(true, SOME_DATA), SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create(true, SOME_DATA), SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isEqualTo(1d);
assertThat(trueMeasureDto.getData()).isEqualTo(SOME_DATA);

MeasureDto falseMeasureDto = underTest.toMeasureDto(Measure.builder().create(false, SOME_DATA), SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto falseMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create(false, SOME_DATA), SOME_BOOLEAN_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(falseMeasureDto.getValue()).isEqualTo(0d);
assertThat(falseMeasureDto.getData()).isEqualTo(SOME_DATA);
@@ -170,7 +168,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_value_and_data_from_data_field_for_INT_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create(123, SOME_DATA), SOME_INT_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create(123, SOME_DATA), SOME_INT_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isEqualTo(123);
assertThat(trueMeasureDto.getData()).isEqualTo(SOME_DATA);
@@ -178,7 +176,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_value_and_data_from_data_field_for_LONG_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create((long) 456, SOME_DATA), SOME_LONG_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create((long) 456, SOME_DATA), SOME_LONG_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isEqualTo(456);
assertThat(trueMeasureDto.getData()).isEqualTo(SOME_DATA);
@@ -186,7 +184,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_value_and_data_from_data_field_for_DOUBLE_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create((double) 789, SOME_DATA), SOME_DOUBLE_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create((double) 789, SOME_DATA), SOME_DOUBLE_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isEqualTo(789);
assertThat(trueMeasureDto.getData()).isEqualTo(SOME_DATA);
@@ -194,7 +192,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_to_only_data_for_STRING_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create(SOME_STRING), SOME_STRING_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create(SOME_STRING), SOME_STRING_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isNull();
assertThat(trueMeasureDto.getData()).isEqualTo(SOME_STRING);
@@ -202,7 +200,7 @@ public class MeasureToMeasureDtoTest {

@Test
public void toMeasureDto_maps_name_of_Level_to_data_and_has_no_value_for_LEVEL_metric() {
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.builder().create(Measure.Level.OK), SOME_LEVEL_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);
MeasureDto trueMeasureDto = underTest.toMeasureDto(Measure.newMeasure().create(Measure.Level.OK), SOME_LEVEL_METRIC, SOME_COMPONENT_ID, SOME_SNAPSHOT_ID);

assertThat(trueMeasureDto.getValue()).isNull();
assertThat(trueMeasureDto.getData()).isEqualTo(Measure.Level.OK.name());

+ 10
- 11
server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityGateEventsStepTest.java View File

@@ -31,7 +31,6 @@ import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.computation.event.Event;
import org.sonar.server.computation.event.EventRepository;
import org.sonar.server.computation.measure.Measure;
import org.sonar.server.computation.measure.Measure;
import org.sonar.server.computation.measure.MeasureRepository;
import org.sonar.server.computation.measure.QualityGateStatus;
import org.sonar.server.computation.metric.Metric;
@@ -92,7 +91,7 @@ public class QualityGateEventsStepTest {

@Test
public void no_event_created_if_raw_ALERT_STATUS_measure_is_null() {
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue()));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().createNoValue()));

underTest.execute();

@@ -106,7 +105,7 @@ public class QualityGateEventsStepTest {

@Test
public void no_event_created_if_raw_ALERT_STATUS_measure_is_unsupported_value() {
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().create(INVALID_ALERT_STATUS)));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().create(INVALID_ALERT_STATUS)));

underTest.execute();

@@ -118,8 +117,8 @@ public class QualityGateEventsStepTest {
public void no_event_created_if_no_base_ALERT_STATUS_and_raw_is_OK() {
QualityGateStatus someQGStatus = new QualityGateStatus(Measure.Level.OK);

when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue().setQualityGateStatus(someQGStatus)));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue()));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().setQualityGateStatus(someQGStatus).createNoValue()));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().createNoValue()));

underTest.execute();

@@ -161,8 +160,8 @@ public class QualityGateEventsStepTest {
private void verify_event_created_if_no_base_ALERT_STATUS_measure(Measure.Level rawAlterStatus, String expectedLabel) {
QualityGateStatus someQGStatus = new QualityGateStatus(rawAlterStatus, ALERT_TEXT);

when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue().setQualityGateStatus(someQGStatus)));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue()));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().setQualityGateStatus(someQGStatus).createNoValue()));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().createNoValue()));

underTest.execute();

@@ -189,8 +188,8 @@ public class QualityGateEventsStepTest {

@Test
public void no_event_created_if_base_ALERT_STATUS_measure_but_status_is_the_same() {
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue().setQualityGateStatus(OK_QUALITY_GATE_STATUS)));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue().setQualityGateStatus(OK_QUALITY_GATE_STATUS)));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().setQualityGateStatus(OK_QUALITY_GATE_STATUS).createNoValue()));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().setQualityGateStatus(OK_QUALITY_GATE_STATUS).createNoValue()));

underTest.execute();

@@ -211,9 +210,9 @@ public class QualityGateEventsStepTest {

private void verify_event_created_if_base_ALERT_STATUS_measure_exists_and_status_has_changed(Measure.Level previousAlertStatus,
QualityGateStatus newQualityGateStatus, String expectedLabel) {
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.builder().createNoValue().setQualityGateStatus(newQualityGateStatus)));
when(measureRepository.getRawMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(of(Measure.newMeasure().setQualityGateStatus(newQualityGateStatus).createNoValue()));
when(measureRepository.getBaseMeasure(PROJECT_COMPONENT, alertStatusMetric)).thenReturn(
of(Measure.builder().createNoValue().setQualityGateStatus(new QualityGateStatus(previousAlertStatus))));
of(Measure.newMeasure().setQualityGateStatus(new QualityGateStatus(previousAlertStatus)).createNoValue()));

underTest.execute();


+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityProfileEventsStepTest.java View File

@@ -280,7 +280,7 @@ public class QualityProfileEventsStepTest {
}

private static Measure newMeasure(@Nullable QualityProfile... qps) {
return Measure.builder().create(toJson(qps));
return Measure.newMeasure().create(toJson(qps));
}

private static String toJson(@Nullable QualityProfile... qps) {

Loading…
Cancel
Save