forked from phoedos/pmd
[java] Update LanguageVersionTest
This commit is contained in:
@@ -4,6 +4,9 @@
|
||||
|
||||
package net.sourceforge.pmd.lang.java;
|
||||
|
||||
import static net.sourceforge.pmd.AbstractLanguageVersionTest.TestDescriptor.defaultVersionIs;
|
||||
import static net.sourceforge.pmd.AbstractLanguageVersionTest.TestDescriptor.versionDoesNotExist;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
@@ -30,11 +33,20 @@ class LanguageVersionTest extends AbstractLanguageVersionTest {
|
||||
new TestDescriptor(java, "14"),
|
||||
new TestDescriptor(java, "15"),
|
||||
new TestDescriptor(java, "16"),
|
||||
new TestDescriptor(java, "16-preview"),
|
||||
new TestDescriptor(java, "17"),
|
||||
new TestDescriptor(java, "17-preview"),
|
||||
new TestDescriptor(java, "18"),
|
||||
new TestDescriptor(java, "19"),
|
||||
new TestDescriptor(java, "20"),
|
||||
new TestDescriptor(java, "20-preview"),
|
||||
new TestDescriptor(java, "21"),
|
||||
new TestDescriptor(java, "21-preview"),
|
||||
|
||||
// this one won't be found: case sensitive!
|
||||
new TestDescriptor("JAVA", "JAVA", "1.7", null));
|
||||
defaultVersionIs(java, "21"),
|
||||
|
||||
// this one won't be found: case-sensitive!
|
||||
versionDoesNotExist("JAVA", "JAVA", "1.7"),
|
||||
// not supported anymore
|
||||
versionDoesNotExist(java, "19-preview")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
@@ -23,21 +24,18 @@ import net.sourceforge.pmd.lang.LanguageVersion;
|
||||
* Base test class for {@link LanguageVersion} implementations. <br>
|
||||
* Each language implementation should subclass this and provide a method called {@code data}.
|
||||
*
|
||||
* <pre>
|
||||
* static Collection<TestDescriptor> data() {
|
||||
* <pre>{@code
|
||||
* static Collection<TestDescriptor> data() {
|
||||
* final Language myLanguage = LanguageRegistry.getLanguage(MyLanguageModule.NAME);
|
||||
* 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")),
|
||||
* new TestDescriptor(myLanguage, "1.1"),
|
||||
* new TestDescriptor(myLanguage, "1.2"),
|
||||
* defaultVersionIs(myLanguage, "1.2),
|
||||
*
|
||||
* // doesn't exist
|
||||
* new TestDescriptor(MyLanguageModule.NAME, MyLanguageModule.TERSE_NAME, "1.3", null)
|
||||
* versionDoesNotExist(myLanguage, "1.3")
|
||||
* };
|
||||
* </pre>
|
||||
*
|
||||
* <p>For the parameters, see the constructor
|
||||
* {@link TestDescriptor#TestDescriptor(String, String, String, LanguageVersion)}.</p>
|
||||
* }</pre>
|
||||
*/
|
||||
public abstract class AbstractLanguageVersionTest {
|
||||
|
||||
@@ -67,7 +65,16 @@ public abstract class AbstractLanguageVersionTest {
|
||||
}
|
||||
|
||||
public TestDescriptor(Language language, String version) {
|
||||
this(language, version, language.getVersion(version));
|
||||
this(language, version,
|
||||
Objects.requireNonNull(language.getVersion(version), "language version '" + version + "' doesn't exist"));
|
||||
}
|
||||
|
||||
public static TestDescriptor versionDoesNotExist(String name, String terseName, String version) {
|
||||
return new TestDescriptor(name, terseName, version, null);
|
||||
}
|
||||
|
||||
public static TestDescriptor versionDoesNotExist(Language lang, String version) {
|
||||
return new TestDescriptor(lang, version, null);
|
||||
}
|
||||
|
||||
public static TestDescriptor defaultVersionIs(Language lang, String version) {
|
||||
@@ -75,10 +82,7 @@ public abstract class AbstractLanguageVersionTest {
|
||||
}
|
||||
|
||||
private TestDescriptor(Language language, String version, LanguageVersion expected) {
|
||||
this.name = language.getName();
|
||||
this.version = version;
|
||||
this.simpleTerseName = language.getId();
|
||||
this.expected = expected;
|
||||
this(language.getName(), language.getId(), version, expected);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user