summaryrefslogtreecommitdiffstats
path: root/sonar-batch
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-09-16 17:12:20 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-09-16 17:12:20 +0200
commitbfd9e1b21883dfb3a430cf34c39305fde4985ebf (patch)
tree7c66e1f619339e2a7943b45daa0d132f5c49868e /sonar-batch
parent57ebc479a474152480fb23f6c15fc3e288f6fc88 (diff)
downloadsonarqube-bfd9e1b21883dfb3a430cf34c39305fde4985ebf.tar.gz
sonarqube-bfd9e1b21883dfb3a430cf34c39305fde4985ebf.zip
SONAR-4629 Improve check of project key pattern: must not only contain digits
Diffstat (limited to 'sonar-batch')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorValidator.java5
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorValidatorTest.java27
2 files changed, 22 insertions, 10 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorValidator.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorValidator.java
index 18f7b6398cb..79668e2c3f0 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorValidator.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorValidator.java
@@ -20,6 +20,7 @@
package org.sonar.batch.scan;
import com.google.common.base.Joiner;
+import org.apache.commons.lang.math.NumberUtils;
import org.codehaus.plexus.util.StringUtils;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.bootstrap.ProjectDefinition;
@@ -61,7 +62,9 @@ public class ProjectReactorValidator {
}
private void validateKey(ProjectDefinition def, List<String> validationMessages) {
- if (!def.getKey().matches(VALID_MODULE_KEY_REGEXP)) {
+ if (!def.getKey().matches(VALID_MODULE_KEY_REGEXP) ||
+ // SONAR-4629 project key must not only contain digits
+ NumberUtils.isDigits(def.getKey())) {
validationMessages.add(String.format("%s is not a valid project or module key", def.getKey()));
}
}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorValidatorTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorValidatorTest.java
index 63bd09139bf..efd2b6a7540 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorValidatorTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorValidatorTest.java
@@ -44,13 +44,13 @@ public class ProjectReactorValidatorTest {
}
@Test
- public void should_not_fail_with_valid_key() {
+ public void not_fail_with_valid_key() {
ProjectReactor reactor = createProjectReactor("foo");
validator.validate(reactor);
}
@Test
- public void should_not_fail_with_alphanumeric_key() {
+ public void not_fail_with_alphanumeric_key() {
ProjectReactor reactor = createProjectReactor("Foobar2");
validator.validate(reactor);
}
@@ -62,25 +62,25 @@ public class ProjectReactorValidatorTest {
}
@Test
- public void should_not_fail_with_dash_key() {
+ public void not_fail_with_dash_key() {
ProjectReactor reactor = createProjectReactor("foo-bar");
validator.validate(reactor);
}
@Test
- public void should_not_fail_with_colon_key() {
+ public void not_fail_with_colon_key() {
ProjectReactor reactor = createProjectReactor("foo:bar");
validator.validate(reactor);
}
@Test
- public void should_not_fail_with_underscore_key() {
+ public void not_fail_with_underscore_key() {
ProjectReactor reactor = createProjectReactor("foo_bar");
validator.validate(reactor);
}
@Test
- public void should_fail_with_invalid_key() {
+ public void fail_with_invalid_key() {
ProjectReactor reactor = createProjectReactor("foo$bar");
thrown.expect(SonarException.class);
@@ -89,7 +89,7 @@ public class ProjectReactorValidatorTest {
}
@Test
- public void should_fail_with_backslash_in_key() {
+ public void fail_with_backslash_in_key() {
ProjectReactor reactor = createProjectReactor("foo\\bar");
thrown.expect(SonarException.class);
@@ -98,7 +98,7 @@ public class ProjectReactorValidatorTest {
}
@Test
- public void should_not_fail_with_valid_branch() {
+ public void not_fail_with_valid_branch() {
validator.validate(createProjectReactor("foo", "branch"));
validator.validate(createProjectReactor("foo", "Branch2"));
validator.validate(createProjectReactor("foo", "bra.nch"));
@@ -108,13 +108,22 @@ public class ProjectReactorValidatorTest {
}
@Test
- public void should_fail_with_invalid_branch() {
+ public void fail_with_invalid_branch() {
ProjectReactor reactor = createProjectReactor("foo", "bran#ch");
thrown.expect(SonarException.class);
thrown.expectMessage("bran#ch is not a valid branch name");
validator.validate(reactor);
}
+ @Test
+ public void fail_with_only_digits() {
+ ProjectReactor reactor = createProjectReactor("12345");
+
+ thrown.expect(SonarException.class);
+ thrown.expectMessage("12345 is not a valid project or module key");
+ validator.validate(reactor);
+ }
+
private ProjectReactor createProjectReactor(String projectKey) {
ProjectDefinition def = ProjectDefinition.create().setProperty(CoreProperties.PROJECT_KEY_PROPERTY, projectKey);
ProjectReactor reactor = new ProjectReactor(def);