validateCondition(metric, operator, warningThreshold, errorThreshold, period);
QualityGateConditionDto newCondition = new QualityGateConditionDto().setQualityGateId(qGateId)
.setMetricId(metric.getId()).setMetricKey(metric.getKey())
- .setOperator(operator).setWarningThreshold(warningThreshold).setErrorThreshold(errorThreshold).setPeriod(period);
+ .setOperator(operator)
+ .setWarningThreshold(warningThreshold)
+ .setErrorThreshold(errorThreshold)
+ .setPeriod(period);
conditionDao.insert(newCondition);
return newCondition;
}
QualityGateConditionDto condition = getNonNullCondition(condId);
Metric metric = getNonNullMetric(metricKey);
validateCondition(metric, operator, warningThreshold, errorThreshold, period);
- condition.setMetricId(metric.getId()).setMetricKey(metric.getKey())
- .setOperator(operator).setWarningThreshold(warningThreshold).setErrorThreshold(errorThreshold).setPeriod(period);
+ condition
+ .setMetricId(metric.getId())
+ .setMetricKey(metric.getKey())
+ .setOperator(operator)
+ .setWarningThreshold(warningThreshold)
+ .setErrorThreshold(errorThreshold)
+ .setPeriod(period);
conditionDao.update(condition);
return condition;
}
private void checkPeriod(Metric metric, @Nullable Integer period, Errors errors) {
if (period == null) {
errors.check(!metric.getKey().startsWith("new_"), "A period must be selected for differential metrics.");
-
} else {
- errors.check(period >= 1 && period <= 5, "Valid periods are integers between 1 and 5 (included).");
+ errors.check(period == 1, "The only valid quality gate period is 1, the leak period.");
}
}
package org.sonar.server.qualitygate.ws;
import org.apache.commons.lang.BooleanUtils;
-import org.sonar.api.i18n.I18n;
import org.sonar.api.measures.Metric;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
private final Periods periods;
- private final I18n i18n;
-
- public AppAction(QualityGates qualityGates, Periods periods, I18n i18n) {
+ public AppAction(QualityGates qualityGates, Periods periods) {
this.qualityGates = qualityGates;
this.periods = periods;
- this.i18n = i18n;
}
@Override
.setPossibleValues(QualityGateConditionDto.ALL_OPERATORS);
action.createParam(PARAM_PERIOD)
- .setDescription("Condition period")
- .setExampleValue("1");
+ .setDescription("Condition period. If not set, the absolute value is considered.")
+ .setPossibleValues("1");
action.createParam(PARAM_WARNING)
.setDescription("Condition warning threshold")
Metric newCoverage = Mockito.spy(CoreMetrics.NEW_COVERAGE);
when(newCoverage.getId()).thenReturn(metricId);
when(metricFinder.findByKey(metricKey)).thenReturn(newCoverage);
- int period = 2;
+ int period = 1;
QualityGateConditionDto newCondition = qGates.createCondition(qGateId, metricKey, operator, null, errorThreshold, period);
assertThat(newCondition.getQualityGateId()).isEqualTo(qGateId);
Metric newCoverage = Mockito.spy(CoreMetrics.NEW_COVERAGE);
when(newCoverage.getId()).thenReturn(metricId);
when(metricFinder.findByKey(metricKey)).thenReturn(newCoverage);
- int period = 2;
+ int period = 1;
assertThat(qGates.updateCondition(condId, metricKey, operator, null, errorThreshold, period)).isEqualTo(condition);
assertThat(condition.getId()).isEqualTo(condId);
new CreateAction(qGates), new CopyAction(qGates), new DestroyAction(qGates), new RenameAction(qGates),
new SetAsDefaultAction(qGates), new UnsetDefaultAction(qGates),
new CreateConditionAction(qGates), new UpdateConditionAction(qGates), new DeleteConditionAction(qGates),
- new SelectAction(qGates), new DeselectAction(qGates), new AppAction(qGates, periods, i18n)));
+ new SelectAction(qGates), new DeselectAction(qGates), new AppAction(qGates, periods)));
}
@Test
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
-import org.sonar.api.i18n.I18n;
import org.sonar.api.server.ws.WebService.Action;
import org.sonar.api.server.ws.WebService.Controller;
import org.sonar.db.qualitygate.ProjectQgateAssociation;
new CreateAction(qGates), new CopyAction(qGates), new DestroyAction(qGates), new RenameAction(qGates),
new SetAsDefaultAction(qGates), new UnsetDefaultAction(qGates),
new CreateConditionAction(qGates), new UpdateConditionAction(qGates), new DeleteConditionAction(qGates),
- new SelectAction(qGates), new DeselectAction(qGates), new AppAction(qGates, mock(Periods.class), mock(I18n.class))));
+ new SelectAction(qGates), new DeselectAction(qGates), new AppAction(qGates, mock(Periods.class))));
}
@Test