mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
LightCodeInsightTestCase: now test name can force the language level.
This commit is contained in:
@@ -33,8 +33,8 @@ public class StreamApiMigrationInspectionTest extends LightQuickFixParameterized
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
return getTestName(false).contains("Java9") ? LanguageLevel.JDK_1_9 : LanguageLevel.JDK_1_8;
|
||||
protected LanguageLevel getDefaultLanguageLevel() {
|
||||
return LanguageLevel.JDK_1_8;
|
||||
}
|
||||
|
||||
public void test() throws Exception { doAllTests(); }
|
||||
|
||||
@@ -23,11 +23,8 @@ public class ExtractSetFromComparisonChainActionTest extends LightIntentionActio
|
||||
public void test() throws Exception { doAllTests(); }
|
||||
|
||||
@Override
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
String name = getTestName(false);
|
||||
return name.contains("Java9") ? LanguageLevel.JDK_1_9 :
|
||||
name.contains("Java4") ? LanguageLevel.JDK_1_4 :
|
||||
LanguageLevel.JDK_1_8;
|
||||
protected LanguageLevel getDefaultLanguageLevel() {
|
||||
return LanguageLevel.JDK_1_8;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.testFramework.IdeaTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -25,14 +24,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @author Tagir Valeev
|
||||
*/
|
||||
public class SimplifyOptionalCallChainsInspectionTest extends LightQuickFixParameterizedTestCase {
|
||||
@Override
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
return getTestName(false).endsWith("Java9.java") ? LanguageLevel.JDK_1_9 : LanguageLevel.JDK_1_8;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Sdk getProjectJDK() {
|
||||
return getTestName(false).endsWith("Java9.java") ? IdeaTestUtil.getMockJdk9() : IdeaTestUtil.getMockJdk18();
|
||||
return IdeaTestUtil.getMockJdk9();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -23,10 +23,15 @@ import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.impl.JavaPsiFacadeEx;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* A TestCase for single PsiFile being opened in Editor conversion. See configureXXX and checkResultXXX method docs.
|
||||
*/
|
||||
public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightTestCase {
|
||||
private static final Pattern JDK_SELECT_PATTERN = Pattern.compile("Java([\\d.]+).java$");
|
||||
|
||||
public static JavaPsiFacadeEx getJavaFacade() {
|
||||
return JavaPsiFacadeEx.getInstanceEx(ourProject);
|
||||
}
|
||||
@@ -37,7 +42,31 @@ public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightT
|
||||
setLanguageLevel(getLanguageLevel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a language level for test. Could be overridden for specific behavior.
|
||||
* <p>
|
||||
* This implementation checks the test name. If it ends with JavaXYZ.java and
|
||||
* XYZ is known Java version (e.g. Java1.4.java or Java9.java), then version XYZ is returned.
|
||||
* Otherwise {@link #getDefaultLanguageLevel() default version} is returned.
|
||||
*
|
||||
* @return a project language level for test.
|
||||
*/
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
Matcher matcher = JDK_SELECT_PATTERN.matcher(getTestName(false));
|
||||
if(matcher.find()) {
|
||||
LanguageLevel level = LanguageLevel.parse(matcher.group(1));
|
||||
if (level != null) {
|
||||
return level;
|
||||
}
|
||||
}
|
||||
|
||||
return getDefaultLanguageLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return default language level if it's not forced by test name
|
||||
*/
|
||||
protected LanguageLevel getDefaultLanguageLevel() {
|
||||
return LanguageLevel.HIGHEST;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,19 +37,13 @@ public class WhileLoopSpinsOnFieldInspectionFixTest extends LightQuickFixParamet
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
if(getTestName(false).endsWith("Java9.java")) {
|
||||
return LanguageLevel.JDK_1_9;
|
||||
}
|
||||
protected LanguageLevel getDefaultLanguageLevel() {
|
||||
return LanguageLevel.JDK_1_8;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Sdk getProjectJDK() {
|
||||
if(getTestName(false).endsWith("Java9.java")) {
|
||||
return IdeaTestUtil.getMockJdk9();
|
||||
}
|
||||
return IdeaTestUtil.getMockJdk18();
|
||||
return IdeaTestUtil.getMockJdk9();
|
||||
}
|
||||
|
||||
public void test() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user