private MetricDto insertMetric(Metric.ValueType type) { return insertMetric(type, "key"); }
@Test public void create_condition_on_rating_metric() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto result = underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "GT", "3"); verifyCondition(result, qualityGate, metric, "GT", "3"); }
@Test public void create_error_condition() { MetricDto metric = insertMetric(INT, "new_coverage"); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto result = underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "LT", "80"); verifyCondition(result, qualityGate, metric, "LT", "80"); }
@Test public void fail_to_create_condition_when_condition_on_same_metric_already_exist() { MetricDto metric = insertMetric(PERCENT); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); db.qualityGates().addCondition(qualityGate, metric); expectedException.expect(BadRequestException.class); expectedException.expectMessage(format("Condition on metric '%s' already exists.", metric.getShortName())); underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "LT", "80"); }
@Test public void create_condition_throws_NPE_if_errorThreshold_is_null() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); expectedException.expect(NullPointerException.class); expectedException.expectMessage("errorThreshold can not be null"); underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "GT", null); }
@Test public void fail_to_create_condition_on_greater_than_E() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); expectedException.expect(BadRequestException.class); expectedException.expectMessage("There's no worse rating than E (5)"); underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "GT", "5"); }
@Test public void fail_to_create_error_condition_on_invalid_rating_metric() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); expectedException.expect(BadRequestException.class); expectedException.expectMessage("'80' is not a valid rating"); underTest.createCondition(db.getSession(), qualityGate, metric.getKey(), "GT", "80"); }
@Test public void fail_to_update_condition_on_rating_metric_on_not_core_rating_metric() { MetricDto metric = insertMetric(RATING, "not_core_rating_metric"); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric, c -> c.setOperator("LT").setErrorThreshold("3")); expectedException.expect(BadRequestException.class); expectedException.expectMessage(format("The metric '%s' cannot be used", metric.getShortName())); underTest.updateCondition(db.getSession(), condition, metric.getKey(), "GT", "4"); }
@Test public void update_condition_on_rating_metric() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric, c -> c.setOperator("LT").setErrorThreshold("80")); QualityGateConditionDto result = underTest.updateCondition(db.getSession(), condition, metric.getKey(), "GT", "4"); verifyCondition(result, qualityGate, metric, "GT", "4"); }
@Test public void fail_to_update_condition_on_rating_metric_on_leak_period() { MetricDto metric = insertMetric(RATING, SQALE_RATING_KEY); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric, c -> c.setOperator("LT").setErrorThreshold("3")); QualityGateConditionDto result = underTest.updateCondition(db.getSession(), condition, metric.getKey(), "GT", "4"); verifyCondition(result, qualityGate, metric, "GT", "4"); }
@Test public void update_condition() { MetricDto metric = insertMetric(PERCENT); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric, c -> c.setOperator("LT").setErrorThreshold("80")); QualityGateConditionDto result = underTest.updateCondition(db.getSession(), condition, metric.getKey(), "LT", "80"); verifyCondition(result, qualityGate, metric, "LT", "80"); }
@Test public void update_condition_throws_NPE_if_errorThreshold_is_null() { MetricDto metric = insertMetric(PERCENT); QualityGateDto qualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization()); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric, c -> c.setOperator("LT").setErrorThreshold("80")); expectedException.expect(NullPointerException.class); expectedException.expectMessage("errorThreshold can not be null"); underTest.updateCondition(db.getSession(), condition, metric.getKey(), "GT", null); }