From 8efd88fe45abf50406b2d94638ba1161e88db5f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Fri, 19 Jun 2015 12:38:00 +0200 Subject: [PATCH] add QualityGateHolderRule --- .../qualitygate/QualityGateHolderRule.java | 49 +++++++++++++++++++ .../step/QualityGateMeasuresStepTest.java | 6 +-- 2 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 server/sonar-server/src/test/java/org/sonar/server/computation/qualitygate/QualityGateHolderRule.java diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/qualitygate/QualityGateHolderRule.java b/server/sonar-server/src/test/java/org/sonar/server/computation/qualitygate/QualityGateHolderRule.java new file mode 100644 index 00000000000..1d97909e8ac --- /dev/null +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/qualitygate/QualityGateHolderRule.java @@ -0,0 +1,49 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.computation.qualitygate; + +import com.google.common.base.Optional; +import javax.annotation.Nullable; +import org.junit.rules.ExternalResource; + +import static com.google.common.base.Preconditions.checkState; + +public class QualityGateHolderRule extends ExternalResource implements QualityGateHolder { + private Optional qualityGate; + + public void setQualityGate(@Nullable QualityGate qualityGate) { + this.qualityGate = Optional.fromNullable(qualityGate); + } + + @Override + public Optional getQualityGate() { + checkState(qualityGate != null, "Holder has not been initialized"); + return qualityGate; + } + + @Override + protected void after() { + reset(); + } + + public void reset() { + this.qualityGate = null; + } +} diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityGateMeasuresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityGateMeasuresStepTest.java index e316ad7b33a..a21099c5f37 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityGateMeasuresStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/QualityGateMeasuresStepTest.java @@ -42,8 +42,8 @@ import org.sonar.server.computation.metric.MetricRepository; import org.sonar.server.computation.qualitygate.Condition; import org.sonar.server.computation.qualitygate.EvaluationResult; import org.sonar.server.computation.qualitygate.EvaluationResultTextConverter; -import org.sonar.server.computation.qualitygate.MutableQualityGateHolderRule; import org.sonar.server.computation.qualitygate.QualityGate; +import org.sonar.server.computation.qualitygate.QualityGateHolderRule; import static com.google.common.collect.ImmutableList.of; import static org.mockito.Matchers.any; @@ -66,7 +66,7 @@ public class QualityGateMeasuresStepTest { @Rule public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule(); @Rule - public MutableQualityGateHolderRule qualityGateHolder = new MutableQualityGateHolderRule(); + public QualityGateHolderRule qualityGateHolder = new QualityGateHolderRule(); private static final Metric ALERT_STATUS_METRIC = mock(Metric.class); private static final Metric QUALITY_GATE_DETAILS_METRIC = mock(Metric.class); @@ -114,7 +114,7 @@ public class QualityGateMeasuresStepTest { @Test public void no_measure_if_there_is_no_qualitygate() { - qualityGateHolder.setNoQualityGate(); + qualityGateHolder.setQualityGate(null); underTest.execute(); -- 2.39.5