From b9f637c91b4e65a7f5a30ffaec82edf539ee1007 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Thu, 27 Feb 2014 17:22:15 +0100 Subject: [PATCH] Improve rule tag validation message --- .../sonar/api/server/rule/RuleTagFormat.java | 2 +- .../api/server/rule/RuleDefinitionsTest.java | 19 ++++++++++--------- .../api/server/rule/RuleTagFormatTest.java | 2 +- .../java/org/sonar/server/rule/RuleTags.java | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RuleTagFormat.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RuleTagFormat.java index 8701e1aa2cf..7d056cd8f4c 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RuleTagFormat.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RuleTagFormat.java @@ -40,7 +40,7 @@ public class RuleTagFormat { public static void validate(String tag) { if (!isValid(tag)) { - throw new IllegalArgumentException(String.format("Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.' - '%s'", tag)); + throw new IllegalArgumentException(String.format("Tag '%s' is invalid. Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.'", tag)); } } } diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleDefinitionsTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleDefinitionsTest.java index 93af6b0e745..5fb81e7ccab 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleDefinitionsTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleDefinitionsTest.java @@ -20,8 +20,8 @@ package org.sonar.api.server.rule; import org.junit.Test; -import org.sonar.api.rule.Severity; import org.sonar.api.rule.RuleStatus; +import org.sonar.api.rule.Severity; import java.net.URL; @@ -184,8 +184,8 @@ public class RuleDefinitionsTest { try { context.newRepository("findbugs", "whatever_the_language").done(); fail(); - } catch (IllegalStateException e) { - assertThat(e).hasMessage("The rule repository 'findbugs' is defined several times"); + } catch (Exception e) { + assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("The rule repository 'findbugs' is defined several times"); } } @@ -204,8 +204,8 @@ public class RuleDefinitionsTest { try { rule.newParam("level"); fail(); - } catch (IllegalArgumentException e) { - assertThat(e).hasMessage("The parameter 'level' is declared several times on the rule [repository=findbugs, key=NPE]"); + } catch (Exception e) { + assertThat(e).isInstanceOf(IllegalArgumentException.class).hasMessage("The parameter 'level' is declared several times on the rule [repository=findbugs, key=NPE]"); } } @@ -216,8 +216,8 @@ public class RuleDefinitionsTest { try { newRepository.done(); fail(); - } catch (IllegalStateException e) { - assertThat(e).hasMessage("Name of rule [repository=findbugs, key=NPE] is empty"); + } catch (Exception e) { + assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Name of rule [repository=findbugs, key=NPE] is empty"); } } @@ -227,8 +227,9 @@ public class RuleDefinitionsTest { // whitespaces are not allowed in tags context.newRepository("findbugs", "java").newRule("NPE").setTags("coding style"); fail(); - } catch (IllegalArgumentException e) { - assertThat(e).hasMessage("Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.' - 'coding style'"); + } catch (Exception e) { + assertThat(e).isInstanceOf(IllegalArgumentException.class) + .hasMessage("Tag 'coding style' is invalid. Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.'"); } } diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleTagFormatTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleTagFormatTest.java index 0bb5d18acad..d0ad96429aa 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleTagFormatTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RuleTagFormatTest.java @@ -53,7 +53,7 @@ public class RuleTagFormatTest { RuleTagFormat.validate(" "); fail(); } catch (IllegalArgumentException e) { - assertThat(e).hasMessage("Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.' - ' '"); + assertThat(e).hasMessage("Tag ' ' is invalid. Rule tags accept only the following characters: a-z, 0-9, '+', '-', '#', '.'"); } } } diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleTags.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleTags.java index c4346ceab9f..cf15e4f18d2 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/RuleTags.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleTags.java @@ -26,7 +26,7 @@ import org.sonar.server.user.UserSession; import java.util.Collection; /** - * Used through ruby code
Internal.quality_profiles
+ * Used through ruby code
Internal.rule_tags
*/ public class RuleTags implements ServerExtension { -- 2.39.5