diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/LanguageVersionTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/LanguageVersionTest.java
index cad18b9163..fe132bcb61 100644
--- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/LanguageVersionTest.java
+++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/LanguageVersionTest.java
@@ -7,20 +7,12 @@ package net.sourceforge.pmd.lang.apex;
import java.util.Arrays;
import java.util.Collection;
-import org.junit.runners.Parameterized.Parameters;
-
import net.sourceforge.pmd.AbstractLanguageVersionTest;
-import net.sourceforge.pmd.lang.LanguageVersion;
-public class LanguageVersionTest extends AbstractLanguageVersionTest {
+class LanguageVersionTest extends AbstractLanguageVersionTest {
- public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- super(name, terseName, version, expected);
- }
-
- @Parameters
- public static Collection> data() {
- return Arrays.asList(new Object[][] { { ApexLanguageModule.NAME, ApexLanguageModule.TERSE_NAME, "35",
- getLanguage("Apex").getVersion("35"), }, });
+ static Collection data() {
+ return Arrays.asList(new TestDescriptor(ApexLanguageModule.NAME, ApexLanguageModule.TERSE_NAME, "35",
+ getLanguage("Apex").getVersion("35")));
}
}
diff --git a/pmd-html/src/test/java/net/sourceforge/pmd/lang/html/LanguageVersionTest.java b/pmd-html/src/test/java/net/sourceforge/pmd/lang/html/LanguageVersionTest.java
new file mode 100644
index 0000000000..c1baee0c98
--- /dev/null
+++ b/pmd-html/src/test/java/net/sourceforge/pmd/lang/html/LanguageVersionTest.java
@@ -0,0 +1,18 @@
+/*
+ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
+ */
+
+package net.sourceforge.pmd.lang.html;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import net.sourceforge.pmd.AbstractLanguageVersionTest;
+
+class LanguageVersionTest extends AbstractLanguageVersionTest {
+
+ static Collection data() {
+ return Arrays.asList(new TestDescriptor(HtmlLanguageModule.NAME, HtmlLanguageModule.TERSE_NAME, "",
+ getLanguage(HtmlLanguageModule.NAME).getDefaultVersion()));
+ }
+}
diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
deleted file mode 100644
index 993d4abd6d..0000000000
--- a/pmd-java/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
- */
-
-package net.sourceforge.pmd;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.runners.Parameterized.Parameters;
-
-import net.sourceforge.pmd.lang.Language;
-import net.sourceforge.pmd.lang.LanguageVersion;
-import net.sourceforge.pmd.lang.java.JavaLanguageModule;
-
-public class LanguageVersionTest extends AbstractLanguageVersionTest {
-
- public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- super(name, terseName, version, expected);
- }
-
- @Parameters
- public static Collection
*/
-@RunWith(Parameterized.class)
public class AbstractLanguageVersionTest {
- private String name;
- private String version;
- private String simpleTerseName;
- private LanguageVersion expected;
+ public static class TestDescriptor {
+ private final String name;
+ private final String version;
+ private final String simpleTerseName;
+ private final LanguageVersion expected;
- /**
- * Creates a new {@link AbstractLanguageVersionTest}
- *
- * @param name
- * the name under which the language module is registered
- * @param terseName
- * the terse name under which the language module is registered
- * @param version
- * the specific version of the language version
- * @param expected
- * the expected {@link LanguageVersion} instance
- */
- public AbstractLanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- this.name = name;
- this.version = version;
- this.simpleTerseName = terseName;
- this.expected = expected;
+ /**
+ * Creates a new {@link TestDescriptor}
+ *
+ * @param name
+ * the name under which the language module is registered
+ * @param terseName
+ * the terse name under which the language module is registered
+ * @param version
+ * the specific version of the language version
+ * @param expected
+ * the expected {@link LanguageVersion} instance
+ */
+ public TestDescriptor(String name, String terseName, String version, LanguageVersion expected) {
+ this.name = name;
+ this.version = version;
+ this.simpleTerseName = terseName;
+ this.expected = expected;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public String getSimpleTerseName() {
+ return simpleTerseName;
+ }
+
+ public LanguageVersion getExpected() {
+ return expected;
+ }
}
+
protected static Language getLanguage(String name) {
return LanguageRegistry.PMD.getLanguageByFullName(name);
}
/**
* Checks that the expected {@link LanguageVersion} can be found via
- * {@link #name} and {@link #version}.
+ * {@link TestDescriptor#name} and {@link TestDescriptor#version}.
*/
- @Test
- public void testFindVersionsForLanguageNameAndVersion() {
+ @ParameterizedTest
+ @MethodSource("data")
+ public void testFindVersionsForLanguageNameAndVersion(TestDescriptor testDescriptor) {
SourceLanguage sourceLanguage = new SourceLanguage();
- sourceLanguage.setName(name);
- sourceLanguage.setVersion(version);
+ sourceLanguage.setName(testDescriptor.getName());
+ sourceLanguage.setVersion(testDescriptor.getVersion());
Language language = getLanguage(sourceLanguage.getName());
LanguageVersion languageVersion = null;
@@ -89,7 +105,7 @@ public class AbstractLanguageVersionTest {
languageVersion = language.getVersion(sourceLanguage.getVersion());
}
- assertEquals(expected, languageVersion);
+ assertEquals(testDescriptor.getExpected(), languageVersion);
}
/**
@@ -98,14 +114,15 @@ public class AbstractLanguageVersionTest {
* @throws Exception
* any error
*/
- @Test
- public void testRegisteredRulesets() throws Exception {
- if (expected == null) {
+ @ParameterizedTest
+ @MethodSource("data")
+ public void testRegisteredRulesets(TestDescriptor testDescriptor) throws Exception {
+ if (testDescriptor.getExpected() == null) {
return;
}
Properties props = new Properties();
- String rulesetsProperties = "/category/" + simpleTerseName + "/categories.properties";
+ String rulesetsProperties = "/category/" + testDescriptor.getSimpleTerseName() + "/categories.properties";
try (InputStream inputStream = getClass().getResourceAsStream(rulesetsProperties)) {
if (inputStream == null) {
throw new IOException();
@@ -121,15 +138,16 @@ public class AbstractLanguageVersionTest {
* @throws Exception
* any error
*/
- @Test
- public void testOldRegisteredRulesets() throws Exception {
+ @ParameterizedTest
+ @MethodSource("data")
+ public void testOldRegisteredRulesets(TestDescriptor testDescriptor) throws Exception {
// only check for languages, that support rules
- if (expected == null) {
+ if (testDescriptor.getExpected() == null) {
return;
}
Properties props = new Properties();
- String rulesetsProperties = "/rulesets/" + simpleTerseName + "/rulesets.properties";
+ String rulesetsProperties = "/rulesets/" + testDescriptor.getSimpleTerseName() + "/rulesets.properties";
InputStream inputStream = getClass().getResourceAsStream(rulesetsProperties);
if (inputStream != null) {
// rulesets.properties file exists
@@ -140,8 +158,10 @@ public class AbstractLanguageVersionTest {
}
}
- @Test
- public void testVersionsAreDistinct() {
+ @ParameterizedTest
+ @MethodSource("data")
+ public void testVersionsAreDistinct(TestDescriptor testDescriptor) {
+ LanguageVersion expected = testDescriptor.getExpected();
if (expected == null) {
return;
}
@@ -155,8 +175,8 @@ public class AbstractLanguageVersionTest {
}
}
- assertEquals("Expected exactly one occurrence of " + expected
- + " in the language versions of its language", 1, count);
+ assertEquals(1, count, "Expected exactly one occurrence of " + expected
+ + " in the language versions of its language");
}
private void assertRulesetsAndCategoriesProperties(Properties props) throws IOException {
diff --git a/pmd-visualforce/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-visualforce/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
deleted file mode 100644
index 571a6ecb7b..0000000000
--- a/pmd-visualforce/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
- */
-
-package net.sourceforge.pmd;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.runners.Parameterized.Parameters;
-
-import net.sourceforge.pmd.lang.LanguageVersion;
-import net.sourceforge.pmd.lang.vf.VfLanguageModule;
-
-public class LanguageVersionTest extends AbstractLanguageVersionTest {
-
- public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- super(name, terseName, version, expected);
- }
-
- @Parameters
- public static Collection data() {
- return Arrays.asList(new Object[][] { { VfLanguageModule.NAME, VfLanguageModule.TERSE_NAME, "",
- getLanguage(VfLanguageModule.NAME).getDefaultVersion(), }, });
- }
-}
diff --git a/pmd-visualforce/src/test/java/net/sourceforge/pmd/lang/vf/LanguageVersionTest.java b/pmd-visualforce/src/test/java/net/sourceforge/pmd/lang/vf/LanguageVersionTest.java
new file mode 100644
index 0000000000..141d62ed8c
--- /dev/null
+++ b/pmd-visualforce/src/test/java/net/sourceforge/pmd/lang/vf/LanguageVersionTest.java
@@ -0,0 +1,18 @@
+/**
+ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
+ */
+
+package net.sourceforge.pmd.lang.vf;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import net.sourceforge.pmd.AbstractLanguageVersionTest;
+
+class LanguageVersionTest extends AbstractLanguageVersionTest {
+
+ static Collection data() {
+ return Arrays.asList(new TestDescriptor(VfLanguageModule.NAME, VfLanguageModule.TERSE_NAME, "",
+ getLanguage(VfLanguageModule.NAME).getDefaultVersion()));
+ }
+}
diff --git a/pmd-vm/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-vm/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
deleted file mode 100644
index 3b98787be2..0000000000
--- a/pmd-vm/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
- */
-
-package net.sourceforge.pmd;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.runners.Parameterized.Parameters;
-
-import net.sourceforge.pmd.lang.LanguageVersion;
-import net.sourceforge.pmd.lang.vm.VmLanguageModule;
-
-public class LanguageVersionTest extends AbstractLanguageVersionTest {
-
- public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- super(name, terseName, version, expected);
- }
-
- @Parameters
- public static Collection data() {
- return Arrays.asList(new Object[][] { { VmLanguageModule.NAME, VmLanguageModule.TERSE_NAME, "",
- getLanguage(VmLanguageModule.NAME).getDefaultVersion(), }, });
- }
-}
diff --git a/pmd-vm/src/test/java/net/sourceforge/pmd/lang/vm/LanguageVersionTest.java b/pmd-vm/src/test/java/net/sourceforge/pmd/lang/vm/LanguageVersionTest.java
new file mode 100644
index 0000000000..2e5645fc11
--- /dev/null
+++ b/pmd-vm/src/test/java/net/sourceforge/pmd/lang/vm/LanguageVersionTest.java
@@ -0,0 +1,18 @@
+/*
+ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
+ */
+
+package net.sourceforge.pmd.lang.vm;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import net.sourceforge.pmd.AbstractLanguageVersionTest;
+
+class LanguageVersionTest extends AbstractLanguageVersionTest {
+
+ static Collection data() {
+ return Arrays.asList(new TestDescriptor(VmLanguageModule.NAME, VmLanguageModule.TERSE_NAME, "",
+ getLanguage(VmLanguageModule.NAME).getDefaultVersion()));
+ }
+}
diff --git a/pmd-xml/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-xml/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
deleted file mode 100644
index f81d9dfc05..0000000000
--- a/pmd-xml/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
- */
-
-package net.sourceforge.pmd;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.runners.Parameterized.Parameters;
-
-import net.sourceforge.pmd.lang.LanguageVersion;
-import net.sourceforge.pmd.lang.pom.PomLanguageModule;
-import net.sourceforge.pmd.lang.wsdl.WsdlLanguageModule;
-import net.sourceforge.pmd.lang.xml.XmlLanguageModule;
-import net.sourceforge.pmd.lang.xsl.XslLanguageModule;
-
-public class LanguageVersionTest extends AbstractLanguageVersionTest {
-
- public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
- super(name, terseName, version, expected);
- }
-
- @Parameters
- public static Collection data() {
- return Arrays.asList(new Object[][] {
- { XmlLanguageModule.NAME, XmlLanguageModule.TERSE_NAME, "",
- getLanguage(XmlLanguageModule.NAME).getDefaultVersion(), },
- { XslLanguageModule.NAME, XslLanguageModule.TERSE_NAME, "",
- getLanguage(XslLanguageModule.NAME).getDefaultVersion(), },
- { WsdlLanguageModule.NAME, WsdlLanguageModule.TERSE_NAME, "",
- getLanguage(WsdlLanguageModule.NAME).getDefaultVersion(), },
- { PomLanguageModule.NAME, PomLanguageModule.TERSE_NAME, "",
- getLanguage(PomLanguageModule.NAME).getDefaultVersion(), }, });
- }
-}
diff --git a/pmd-xml/src/test/java/net/sourceforge/pmd/lang/xml/LanguageVersionTest.java b/pmd-xml/src/test/java/net/sourceforge/pmd/lang/xml/LanguageVersionTest.java
new file mode 100644
index 0000000000..4e4816f7fb
--- /dev/null
+++ b/pmd-xml/src/test/java/net/sourceforge/pmd/lang/xml/LanguageVersionTest.java
@@ -0,0 +1,28 @@
+/**
+ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
+ */
+
+package net.sourceforge.pmd.lang.xml;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import net.sourceforge.pmd.AbstractLanguageVersionTest;
+import net.sourceforge.pmd.lang.pom.PomLanguageModule;
+import net.sourceforge.pmd.lang.wsdl.WsdlLanguageModule;
+import net.sourceforge.pmd.lang.xsl.XslLanguageModule;
+
+class LanguageVersionTest extends AbstractLanguageVersionTest {
+
+ static Collection data() {
+ return Arrays.asList(
+ new TestDescriptor(XmlLanguageModule.NAME, XmlLanguageModule.TERSE_NAME, "",
+ getLanguage(XmlLanguageModule.NAME).getDefaultVersion()),
+ new TestDescriptor(XslLanguageModule.NAME, XslLanguageModule.TERSE_NAME, "",
+ getLanguage(XslLanguageModule.NAME).getDefaultVersion()),
+ new TestDescriptor(WsdlLanguageModule.NAME, WsdlLanguageModule.TERSE_NAME, "",
+ getLanguage(WsdlLanguageModule.NAME).getDefaultVersion()),
+ new TestDescriptor(PomLanguageModule.NAME, PomLanguageModule.TERSE_NAME, "",
+ getLanguage(PomLanguageModule.NAME).getDefaultVersion()));
+ }
+}