forked from phoedos/pmd
Migrate LanguageVersionTests to JUnit5
Also move LanguageVersionTests into their language packages and add missing tests
This commit is contained in:
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(ApexLanguageModule.NAME, ApexLanguageModule.TERSE_NAME, "35",
|
||||
getLanguage("Apex").getVersion("35")));
|
||||
}
|
||||
}
|
||||
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(HtmlLanguageModule.NAME, HtmlLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(HtmlLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> 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, },
|
||||
});
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> 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));
|
||||
}
|
||||
}
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] { { EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.TERSE_NAME,
|
||||
"ES6",
|
||||
getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(
|
||||
new TestDescriptor(EcmascriptLanguageModule.NAME, EcmascriptLanguageModule.TERSE_NAME, "ES6",
|
||||
getLanguage(EcmascriptLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] { { JspLanguageModule.NAME, JspLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(JspLanguageModule.NAME).getDefaultVersion(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(JspLanguageModule.NAME, JspLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(JspLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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");
|
||||
}
|
||||
}
|
||||
|
@@ -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<TestDescriptor> 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()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] {
|
||||
{ ModelicaLanguageModule.NAME, ModelicaLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(ModelicaLanguageModule.NAME).getDefaultVersion(),
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(ModelicaLanguageModule.NAME, ModelicaLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(ModelicaLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] { { PLSQLLanguageModule.NAME, PLSQLLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(PLSQLLanguageModule.NAME).getDefaultVersion(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(PLSQLLanguageModule.NAME, PLSQLLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(PLSQLLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> 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"), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> 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")));
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(SwiftLanguageModule.NAME, SwiftLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(SwiftLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -32,6 +32,11 @@
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-params</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
|
@@ -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. <br>
|
||||
* Each language implementation should subclass this and provide a data method.
|
||||
* Each language implementation should subclass this and provide a method called {@code data}.
|
||||
*
|
||||
* <pre>
|
||||
* @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)
|
||||
* };
|
||||
* </pre>
|
||||
*
|
||||
* <p>For the parameters, see the constructor
|
||||
* {@link #AbstractLanguageVersionTest(String, String, String, LanguageVersion)}.</p>
|
||||
* {@link TestDescriptor#TestDescriptor(String, String, String, LanguageVersion)}.</p>
|
||||
*/
|
||||
@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 {
|
||||
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] { { VfLanguageModule.NAME, VfLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(VfLanguageModule.NAME).getDefaultVersion(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(VfLanguageModule.NAME, VfLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(VfLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> data() {
|
||||
return Arrays.asList(new Object[][] { { VmLanguageModule.NAME, VmLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(VmLanguageModule.NAME).getDefaultVersion(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> data() {
|
||||
return Arrays.asList(new TestDescriptor(VmLanguageModule.NAME, VmLanguageModule.TERSE_NAME, "",
|
||||
getLanguage(VmLanguageModule.NAME).getDefaultVersion()));
|
||||
}
|
||||
}
|
@@ -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<Object[]> 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(), }, });
|
||||
}
|
||||
}
|
@@ -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<TestDescriptor> 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()));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user