diff options
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/qualitygate/QualityGateProvider.java | 9 | ||||
-rw-r--r-- | sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java | 12 |
2 files changed, 13 insertions, 8 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/qualitygate/QualityGateProvider.java b/sonar-batch/src/main/java/org/sonar/batch/qualitygate/QualityGateProvider.java index 3cfba31d384..d628cd324b7 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/qualitygate/QualityGateProvider.java +++ b/sonar-batch/src/main/java/org/sonar/batch/qualitygate/QualityGateProvider.java @@ -40,8 +40,13 @@ public class QualityGateProvider extends ProviderAdapter { private static final String PROPERTY_QUALITY_GATE = "sonar.qualitygate"; + private QualityGate instance; + public QualityGate provide(Settings settings, ServerClient client, MetricFinder metricFinder) { - return init(settings, client, metricFinder, LOG); + if (instance == null) { + instance = init(settings, client, metricFinder, LOG); + } + return instance; } @VisibleForTesting @@ -52,8 +57,8 @@ public class QualityGateProvider extends ProviderAdapter { logger.info("No quality gate is configured."); } else { result = load(qualityGateSetting, client.wsClient().qualityGateClient(), metricFinder); + logger.info("Loaded quality gate '{}'", result.name()); } - logger.info("Loaded quality gate '{}'", result.name()); return result; } diff --git a/sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java b/sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java index 46729866736..739a380d4fa 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java @@ -40,9 +40,7 @@ import java.net.HttpURLConnection; import java.util.Collection; import static org.fest.assertions.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class QualityGateProviderTest { @@ -71,9 +69,11 @@ public class QualityGateProviderTest { @Test public void should_load_empty_quality_gate_from_default_settings() { - assertThat(new QualityGateProvider().provide(settings, client, metricFinder).conditions()).isEmpty(); - assertThat(new QualityGateProvider().init(settings, client, metricFinder, logger).isEnabled()).isFalse(); - verify(logger).info("No quality gate is configured."); + QualityGateProvider provider = new QualityGateProvider(); + assertThat(provider.provide(settings, client, metricFinder).conditions()).isEmpty(); + assertThat(provider.init(settings, client, metricFinder, logger).isEnabled()).isFalse(); + verify(logger, times(1)).info("No quality gate is configured."); + verify(settings, times(2)).getString("sonar.qualitygate"); } @Test |