]> source.dussan.org Git - sonarqube.git/commitdiff
validate analysis mode
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Fri, 7 Aug 2015 13:05:29 +0000 (15:05 +0200)
committerDuarte Meneses <duarte.meneses@sonarsource.com>
Fri, 7 Aug 2015 13:05:29 +0000 (15:05 +0200)
sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalMode.java
sonar-batch/src/main/java/org/sonar/batch/scan/ProjectAnalysisMode.java
sonar-batch/src/test/java/org/sonar/batch/scan/ProjectAnalysisModeTest.java

index 1965abc1730e607c858de0a0747891e0c1ac63ec..33ec869e23eac20dfd747f28a1283e66c2afed08 100644 (file)
  */
 package org.sonar.batch.bootstrap;
 
+import org.apache.commons.lang.StringUtils;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
 import org.sonar.api.CoreProperties;
 
 import java.text.MessageFormat;
@@ -40,6 +41,7 @@ public class GlobalMode {
       preview = "true".equals(props.property(CoreProperties.DRY_RUN));
     } else {
       String mode = props.property(CoreProperties.ANALYSIS_MODE);
+      validate(mode);
       preview = CoreProperties.ANALYSIS_MODE_PREVIEW.equals(mode) || CoreProperties.ANALYSIS_MODE_QUICK.equals(mode);
     }
 
@@ -47,4 +49,15 @@ public class GlobalMode {
       LOG.info("Preview global mode");
     }
   }
+
+  private void validate(String mode) {
+    if (StringUtils.isEmpty(mode)) {
+      return;
+    }
+
+    if (!CoreProperties.ANALYSIS_MODE_PREVIEW.equals(mode) && !CoreProperties.ANALYSIS_MODE_QUICK.equals(mode) &&
+      !CoreProperties.ANALYSIS_MODE_ANALYSIS.equals(mode)) {
+      throw new IllegalStateException("Invalid analysis mode: " + mode);
+    }
+  }
 }
index d13d1710e557b054d69a62f5cb916bbc30938f80..5ebd094360c62e80719a67a1a8305f8eb7118cc3 100644 (file)
@@ -19,8 +19,8 @@
  */
 package org.sonar.batch.scan;
 
+import org.apache.commons.lang.StringUtils;
 import org.sonar.batch.bootstrap.BootstrapProperties;
-
 import org.sonar.batch.bootstrap.AnalysisProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -78,6 +78,7 @@ public class ProjectAnalysisMode implements AnalysisMode {
       preview = "true".equals(getPropertyWithFallback(analysisProps, globalProps, CoreProperties.DRY_RUN));
     } else {
       String mode = getPropertyWithFallback(analysisProps, globalProps, CoreProperties.ANALYSIS_MODE);
+      validate(mode);
       preview = CoreProperties.ANALYSIS_MODE_PREVIEW.equals(mode);
       quick = CoreProperties.ANALYSIS_MODE_QUICK.equals(mode);
     }
@@ -107,4 +108,15 @@ public class ProjectAnalysisMode implements AnalysisMode {
     return "true".equals(props.get(CoreProperties.DRY_RUN)) || CoreProperties.ANALYSIS_MODE_PREVIEW.equals(mode) ||
       CoreProperties.ANALYSIS_MODE_QUICK.equals(mode);
   }
+
+  private void validate(String mode) {
+    if (StringUtils.isEmpty(mode)) {
+      return;
+    }
+
+    if (!CoreProperties.ANALYSIS_MODE_PREVIEW.equals(mode) && !CoreProperties.ANALYSIS_MODE_QUICK.equals(mode) &&
+      !CoreProperties.ANALYSIS_MODE_ANALYSIS.equals(mode)) {
+      throw new IllegalStateException("Invalid analysis mode: " + mode);
+    }
+  }
 }
index c7a04640777f4afdcac9340a20b25d2cc4ffdbbd..18e24b9d1ddea711ea184ca58ed49e7ae353e2c6 100644 (file)
@@ -36,12 +36,7 @@ public class ProjectAnalysisModeTest {
 
   @Test
   public void regular_analysis_by_default() {
-    ProjectAnalysisMode mode = createMode(null);
-
-    assertThat(mode.isPreview()).isFalse();
-
-    mode = createMode(CoreProperties.ANALYSIS_MODE, "pouet");
-
+    ProjectAnalysisMode mode = createMode(null, null);
     assertThat(mode.isPreview()).isFalse();
   }
 
@@ -57,6 +52,11 @@ public class ProjectAnalysisModeTest {
     assertThat(mode.isPreview()).isFalse();
   }
 
+  @Test(expected = IllegalStateException.class)
+  public void validate_mode() {
+    createMode(CoreProperties.ANALYSIS_MODE_INCREMENTAL);
+  }
+
   @Test
   public void support_preview_mode() {
     ProjectAnalysisMode mode = createMode(CoreProperties.ANALYSIS_MODE_PREVIEW);