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 data() { - Language java = getLanguage(JavaLanguageModule.NAME); - return Arrays.asList(new Object[][] { - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.3", - java.getVersion("1.3"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.4", - java.getVersion("1.4"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.5", - java.getVersion("1.5"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.6", - java.getVersion("1.6"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.7", - java.getVersion("1.7"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "1.8", - java.getVersion("1.8"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "9", - java.getVersion("9"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "10", - java.getVersion("10"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "11", - java.getVersion("11"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "12", - java.getVersion("12"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "13", - java.getVersion("13"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "14", - java.getVersion("14"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "15", - java.getVersion("15"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "16", - java.getVersion("16"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "16-preview", - java.getVersion("16-preview"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "17", - java.getVersion("17"), }, - { JavaLanguageModule.NAME, JavaLanguageModule.TERSE_NAME, "17-preview", - java.getVersion("17-preview"), }, - - // this one won't be found: case sensitive! - { "JAVA", "JAVA", "1.7", null, }, - }); - } -} diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/LanguageVersionTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/LanguageVersionTest.java new file mode 100644 index 0000000000..47ccd49bdf --- /dev/null +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/LanguageVersionTest.java @@ -0,0 +1,42 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.java; + +import java.util.Arrays; +import java.util.Collection; + +import net.sourceforge.pmd.AbstractLanguageVersionTest; +import net.sourceforge.pmd.lang.Language; + +class LanguageVersionTest extends AbstractLanguageVersionTest { + + static Collection data() { + final String name = JavaLanguageModule.NAME; + final String terseName = JavaLanguageModule.TERSE_NAME; + final Language java = getLanguage(name); + + return Arrays.asList( + new TestDescriptor(name, terseName, "1.3", java.getVersion("1.3")), + new TestDescriptor(name, terseName, "1.4", java.getVersion("1.4")), + new TestDescriptor(name, terseName, "1.5", java.getVersion("1.5")), + new TestDescriptor(name, terseName, "1.6", java.getVersion("1.6")), + new TestDescriptor(name, terseName, "1.7", java.getVersion("1.7")), + new TestDescriptor(name, terseName, "1.8", java.getVersion("1.8")), + new TestDescriptor(name, terseName, "9", java.getVersion("9")), + new TestDescriptor(name, terseName, "10", java.getVersion("10")), + new TestDescriptor(name, terseName, "11", java.getVersion("11")), + new TestDescriptor(name, terseName, "12", java.getVersion("12")), + new TestDescriptor(name, terseName, "13", java.getVersion("13")), + new TestDescriptor(name, terseName, "14", java.getVersion("14")), + new TestDescriptor(name, terseName, "15", java.getVersion("15")), + new TestDescriptor(name, terseName, "16", java.getVersion("16")), + new TestDescriptor(name, terseName, "16-preview", java.getVersion("16-preview")), + new TestDescriptor(name, terseName, "17", java.getVersion("17")), + new TestDescriptor(name, terseName, "17-preview", java.getVersion("17-preview")), + + // this one won't be found: case sensitive! + new TestDescriptor("JAVA", "JAVA", "1.7", null)); + } +} diff --git a/pmd-javascript/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-javascript/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 5786dc0e26..0000000000 --- a/pmd-javascript/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +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.ecmascript.EcmascriptLanguageModule; - -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[][] { { EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.TERSE_NAME, - "ES6", - getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/LanguageVersionTest.java b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/LanguageVersionTest.java new file mode 100644 index 0000000000..5df250aff5 --- /dev/null +++ b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/LanguageVersionTest.java @@ -0,0 +1,19 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.ecmascript; + +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(EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.TERSE_NAME, "ES6", + getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-jsp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index d146252127..0000000000 --- a/pmd-jsp/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.jsp.JspLanguageModule; - -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[][] { { JspLanguageModule.NAME, JspLanguageModule.TERSE_NAME, "", - getLanguage(JspLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/LanguageVersionTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/LanguageVersionTest.java new file mode 100644 index 0000000000..4707c22101 --- /dev/null +++ b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/LanguageVersionTest.java @@ -0,0 +1,18 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.jsp; + +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(JspLanguageModule.NAME, JspLanguageModule.TERSE_NAME, "", + getLanguage(JspLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/KotlinLanguageModule.java b/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/KotlinLanguageModule.java index 6f67a40ae2..59cc1784ac 100644 --- a/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/KotlinLanguageModule.java +++ b/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/KotlinLanguageModule.java @@ -25,6 +25,6 @@ public class KotlinLanguageModule extends BaseLanguageModule { */ public KotlinLanguageModule() { super(NAME, null, TERSE_NAME, "kt", "ktm"); - addDefaultVersion("1.6-rfc+0.1", new KotlinHandler(), "1.6"); + addDefaultVersion("", new KotlinHandler(), "1.6", "1.6-rfc+0.1"); } } diff --git a/pmd-kotlin/src/test/java/net/sourceforge/pmd/lang/kotlin/LanguageVersionTest.java b/pmd-kotlin/src/test/java/net/sourceforge/pmd/lang/kotlin/LanguageVersionTest.java new file mode 100644 index 0000000000..fbc7248a41 --- /dev/null +++ b/pmd-kotlin/src/test/java/net/sourceforge/pmd/lang/kotlin/LanguageVersionTest.java @@ -0,0 +1,21 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.kotlin; + +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(KotlinLanguageModule.NAME, KotlinLanguageModule.TERSE_NAME, "", + getLanguage(KotlinLanguageModule.NAME).getDefaultVersion()), + new TestDescriptor(KotlinLanguageModule.NAME, KotlinLanguageModule.TERSE_NAME, "1.6", + getLanguage(KotlinLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-modelica/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-modelica/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 075ff57939..0000000000 --- a/pmd-modelica/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,28 +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; - -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.modelica.ModelicaLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameterized.Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { - { ModelicaLanguageModule.NAME, ModelicaLanguageModule.TERSE_NAME, "", - getLanguage(ModelicaLanguageModule.NAME).getDefaultVersion(), - }, - }); - } -} diff --git a/pmd-modelica/src/test/java/net/sourceforge/pmd/lang/modelica/LanguageVersionTest.java b/pmd-modelica/src/test/java/net/sourceforge/pmd/lang/modelica/LanguageVersionTest.java new file mode 100644 index 0000000000..367e843585 --- /dev/null +++ b/pmd-modelica/src/test/java/net/sourceforge/pmd/lang/modelica/LanguageVersionTest.java @@ -0,0 +1,18 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.modelica; + +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(ModelicaLanguageModule.NAME, ModelicaLanguageModule.TERSE_NAME, "", + getLanguage(ModelicaLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index a2952609ec..0000000000 --- a/pmd-plsql/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.plsql.PLSQLLanguageModule; - -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[][] { { PLSQLLanguageModule.NAME, PLSQLLanguageModule.TERSE_NAME, "", - getLanguage(PLSQLLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/LanguageVersionTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/LanguageVersionTest.java new file mode 100644 index 0000000000..f28d58964e --- /dev/null +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/LanguageVersionTest.java @@ -0,0 +1,18 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.plsql; + +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(PLSQLLanguageModule.NAME, PLSQLLanguageModule.TERSE_NAME, "", + getLanguage(PLSQLLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 1b505a1889..0000000000 --- a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,33 +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.scala.ScalaLanguageModule; - -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[][] { - { ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.13", - getLanguage(ScalaLanguageModule.NAME).getVersion("2.13"), }, - { ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.12", - getLanguage(ScalaLanguageModule.NAME).getVersion("2.12"), }, - { ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.11", - getLanguage(ScalaLanguageModule.NAME).getVersion("2.11"), }, - { ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.10", - getLanguage(ScalaLanguageModule.NAME).getVersion("2.10"), }, }); - } -} diff --git a/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/LanguageVersionTest.java b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/LanguageVersionTest.java new file mode 100644 index 0000000000..9adb6dfb3f --- /dev/null +++ b/pmd-scala-modules/pmd-scala-common/src/test/java/net/sourceforge/pmd/lang/scala/LanguageVersionTest.java @@ -0,0 +1,25 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.scala; + +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(ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.13", + getLanguage(ScalaLanguageModule.NAME).getVersion("2.13")), + new TestDescriptor(ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.12", + getLanguage(ScalaLanguageModule.NAME).getVersion("2.12")), + new TestDescriptor(ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.11", + getLanguage(ScalaLanguageModule.NAME).getVersion("2.11")), + new TestDescriptor(ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "2.10", + getLanguage(ScalaLanguageModule.NAME).getVersion("2.10"))); + } +} diff --git a/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/LanguageVersionTest.java b/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/LanguageVersionTest.java new file mode 100644 index 0000000000..e56e9f3ca9 --- /dev/null +++ b/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/LanguageVersionTest.java @@ -0,0 +1,18 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.swift; + +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(SwiftLanguageModule.NAME, SwiftLanguageModule.TERSE_NAME, "", + getLanguage(SwiftLanguageModule.NAME).getDefaultVersion())); + } +} diff --git a/pmd-test/pom.xml b/pmd-test/pom.xml index e26caa145c..f182e42800 100644 --- a/pmd-test/pom.xml +++ b/pmd-test/pom.xml @@ -32,6 +32,11 @@ junit-jupiter-api compile + + org.junit.jupiter + junit-jupiter-params + compile + junit junit diff --git a/pmd-test/src/main/java/net/sourceforge/pmd/AbstractLanguageVersionTest.java b/pmd-test/src/main/java/net/sourceforge/pmd/AbstractLanguageVersionTest.java index dd99117639..bf48bcb426 100644 --- a/pmd-test/src/main/java/net/sourceforge/pmd/AbstractLanguageVersionTest.java +++ b/pmd-test/src/main/java/net/sourceforge/pmd/AbstractLanguageVersionTest.java @@ -4,16 +4,15 @@ package net.sourceforge.pmd; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.IOException; import java.io.InputStream; import java.util.Properties; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import net.sourceforge.pmd.ant.SourceLanguage; import net.sourceforge.pmd.lang.Language; @@ -22,66 +21,83 @@ import net.sourceforge.pmd.lang.LanguageVersion; /** * Base test class for {@link LanguageVersion} implementations.
- * Each language implementation should subclass this and provide a data method. + * Each language implementation should subclass this and provide a method called {@code data}. * *
- * @Parameters
- *     public static Collection<Object[]> data() {
- *       return Arrays.asList(new Object[][] {
- *            { MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.1",
- *              LanguageRegistry.getLanguage(MyLanguageModule.NAME).getVersion("1.1") },
- *            { MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.2",
- *              LanguageRegistry.getLanguage(MyLanguageModule.NAME).getVersion("1.2") },
+ *     static Collection<TestDescriptor> data() {
+ *       return Arrays.asList(
+ *            new TestDescriptor(MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.1",
+ *                               LanguageRegistry.getLanguage(MyLanguageModule.NAME).getVersion("1.1")),
+ *            new TestDescriptor(MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.2",
+ *                               LanguageRegistry.getLanguage(MyLanguageModule.NAME).getVersion("1.2")),
  *
  *            // doesn't exist
- *            { MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.3",
- *              null }
- *       });
+ *            new TestDescriptor(MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.3", null)
+ *       };
  * 
* *

For the parameters, see the constructor - * {@link #AbstractLanguageVersionTest(String, String, String, LanguageVersion)}.

+ * {@link TestDescriptor#TestDescriptor(String, String, String, LanguageVersion)}.

*/ -@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())); + } +}