From bfd9e1b21883dfb3a430cf34c39305fde4985ebf Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 16 Sep 2013 17:12:20 +0200 Subject: [PATCH] SONAR-4629 Improve check of project key pattern: must not only contain digits --- .../batch/scan/ProjectReactorValidator.java | 5 +++- .../scan/ProjectReactorValidatorTest.java | 27 ++++++++++++------- 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 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); -- 2.39.5