From 70378d6831c0ce5038b88ac3ba1bd08e36d11aa0 Mon Sep 17 00:00:00 2001 From: Aldo Torres Date: Tue, 24 Jun 2025 13:07:54 -0500 Subject: [PATCH 1/2] fix: rule 098 is parametrized --- .../openapi/checks/format/OAR098LongBasePathCheck.java | 10 +++++++++- .../checks/format/OAR098LongBasePathCheckTest.java | 7 ++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java b/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java index 6556d73..c93eb48 100644 --- a/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java +++ b/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java @@ -15,12 +15,18 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.sonar.check.RuleProperty; @Rule(key = OAR098LongBasePathCheck.KEY) public class OAR098LongBasePathCheck extends BaseCheck { public static final String KEY = "OAR098"; + private static final int LONG_BASE_PATH = 2; + + @RuleProperty(key = "long-base-path", description = "long of the path in the basepath keywork value", defaultValue = "" + LONG_BASE_PATH ) + private static int long_base_path = LONG_BASE_PATH; + @Override public Set subscribedKinds() { return ImmutableSet.of(OpenApi2Grammar.ROOT, OpenApi3Grammar.SERVER, OpenApi31Grammar.SERVER); @@ -55,7 +61,9 @@ private void visitV3ServerNode(JsonNode node) { private void validatePath(String path, JsonNode node) { List pathParts = Stream.of(path.split("/")).map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); - if (pathParts.size() > 2) { + if (pathParts.size() > long_base_path) { + System.out.println(pathParts.size()); + System.out.println(long_base_path); addIssue(KEY, translate("OAR098.error-path-long"), node.value()); } } diff --git a/src/test/java/org/sonar/samples/openapi/checks/format/OAR098LongBasePathCheckTest.java b/src/test/java/org/sonar/samples/openapi/checks/format/OAR098LongBasePathCheckTest.java index e5bfb87..7d43ad2 100644 --- a/src/test/java/org/sonar/samples/openapi/checks/format/OAR098LongBasePathCheckTest.java +++ b/src/test/java/org/sonar/samples/openapi/checks/format/OAR098LongBasePathCheckTest.java @@ -1,13 +1,13 @@ package org.sonar.samples.openapi.checks.format; +import apiaddicts.sonar.openapi.checks.format.OAR098LongBasePathCheck; import org.junit.Before; import org.junit.Test; import org.sonar.api.rule.Severity; import org.sonar.api.rules.RuleType; +import org.sonar.api.server.rule.RuleParamType; import org.sonar.samples.openapi.BaseCheckTest; -import apiaddicts.sonar.openapi.checks.format.OAR098LongBasePathCheck; - public class OAR098LongBasePathCheckTest extends BaseCheckTest { @Before @@ -45,6 +45,7 @@ public void verifyRule() { @Override public void verifyParameters() { - assertNumberOfParameters(0); + assertNumberOfParameters(1); + assertParameterProperties("long-base-path", "2", RuleParamType.INTEGER); } } \ No newline at end of file From 2f93a085b7d4de5133a5d4be38fd426a5245732a Mon Sep 17 00:00:00 2001 From: Aldo Torres Date: Thu, 26 Jun 2025 16:19:08 -0500 Subject: [PATCH 2/2] fix: change variable names and delete prints --- .../format/OAR098LongBasePathCheck.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java b/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java index c93eb48..bb9ee57 100644 --- a/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java +++ b/src/main/java/apiaddicts/sonar/openapi/checks/format/OAR098LongBasePathCheck.java @@ -1,20 +1,19 @@ package apiaddicts.sonar.openapi.checks.format; +import apiaddicts.sonar.openapi.checks.BaseCheck; import com.google.common.collect.ImmutableSet; import com.sonar.sslr.api.AstNodeType; -import org.sonar.check.Rule; -import org.apiaddicts.apitools.dosonarapi.api.v2.OpenApi2Grammar; -import org.apiaddicts.apitools.dosonarapi.api.v3.OpenApi3Grammar; -import org.apiaddicts.apitools.dosonarapi.api.v31.OpenApi31Grammar; -import apiaddicts.sonar.openapi.checks.BaseCheck; -import org.apiaddicts.apitools.dosonarapi.sslr.yaml.grammar.JsonNode; - import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.apiaddicts.apitools.dosonarapi.api.v2.OpenApi2Grammar; +import org.apiaddicts.apitools.dosonarapi.api.v3.OpenApi3Grammar; +import org.apiaddicts.apitools.dosonarapi.api.v31.OpenApi31Grammar; +import org.apiaddicts.apitools.dosonarapi.sslr.yaml.grammar.JsonNode; +import org.sonar.check.Rule; import org.sonar.check.RuleProperty; @Rule(key = OAR098LongBasePathCheck.KEY) @@ -25,7 +24,7 @@ public class OAR098LongBasePathCheck extends BaseCheck { private static final int LONG_BASE_PATH = 2; @RuleProperty(key = "long-base-path", description = "long of the path in the basepath keywork value", defaultValue = "" + LONG_BASE_PATH ) - private static int long_base_path = LONG_BASE_PATH; + private static int basePahtLength = LONG_BASE_PATH; @Override public Set subscribedKinds() { @@ -61,9 +60,7 @@ private void visitV3ServerNode(JsonNode node) { private void validatePath(String path, JsonNode node) { List pathParts = Stream.of(path.split("/")).map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); - if (pathParts.size() > long_base_path) { - System.out.println(pathParts.size()); - System.out.println(long_base_path); + if (pathParts.size() > basePahtLength) { addIssue(KEY, translate("OAR098.error-path-long"), node.value()); } }