From 12b6a4ede440f716131cbf340a16e189f4fdc947 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 25 Feb 2016 20:48:35 +0300 Subject: [PATCH] Obsolete KotlinLiteFixture, move utilities to CheckerTestUtilTest --- .../kotlin/checkers/BaseDiagnosticsTest.java | 7 ++-- .../kotlin/checkers/CheckerTestUtilTest.java | 36 +++++++++++++--- .../jetbrains/kotlin/psi/KtPsiUtilTest.java | 13 +++--- .../kotlin/resolve/AbstractResolveTest.java | 8 ++-- .../kotlin/resolve/ExpectedResolveData.java | 13 +++--- .../AbstractConstraintSystemTest.kt | 12 +++--- .../CapturedTypeApproximationTest.kt | 8 ++-- .../kotlin/test/KotlinLiteFixture.java | 41 ------------------- .../AbstractDiagnosticMessageTest.java | 7 ++-- 9 files changed, 64 insertions(+), 81 deletions(-) diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java b/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java index 762a94dcf1b..1ce796c07a8 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java @@ -39,6 +39,7 @@ import org.jetbrains.kotlin.psi.KtDeclaration; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics; +import org.jetbrains.kotlin.test.KotlinTestUtils; import org.jetbrains.kotlin.types.Flexibility; import org.junit.Assert; @@ -135,10 +136,10 @@ public abstract class BaseDiagnosticsTest if (includeExtras) { if (declareFlexibleType) { - jetFiles.add(createPsiFile(null, "EXPLICIT_FLEXIBLE_TYPES.kt", EXPLICIT_FLEXIBLE_TYPES_DECLARATIONS)); + jetFiles.add(KotlinTestUtils.createFile("EXPLICIT_FLEXIBLE_TYPES.kt", EXPLICIT_FLEXIBLE_TYPES_DECLARATIONS, getProject())); } if (declareCheckType) { - jetFiles.add(createPsiFile(null, "CHECK_TYPE.kt", CHECK_TYPE_DECLARATIONS)); + jetFiles.add(KotlinTestUtils.createFile("CHECK_TYPE.kt", CHECK_TYPE_DECLARATIONS, getProject())); } } @@ -270,7 +271,7 @@ public abstract class BaseDiagnosticsTest this.expectedText = textWithMarkers; String textWithExtras = addExtras(expectedText); this.clearText = CheckerTestUtil.parseDiagnosedRanges(textWithExtras, diagnosedRanges); - this.jetFile = createCheckAndReturnPsiFile(null, fileName, clearText); + this.jetFile = CheckerTestUtilTest.createCheckAndReturnPsiFile(fileName, clearText, getProject()); for (CheckerTestUtil.DiagnosedRange diagnosedRange : diagnosedRanges) { diagnosedRange.setFile(jetFile); } diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/CheckerTestUtilTest.java b/compiler/tests/org/jetbrains/kotlin/checkers/CheckerTestUtilTest.java index 729efcbb578..44924f8912c 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/CheckerTestUtilTest.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/CheckerTestUtilTest.java @@ -17,8 +17,13 @@ package org.jetbrains.kotlin.checkers; import com.google.common.collect.Lists; +import com.intellij.openapi.fileEditor.impl.LoadTextUtil; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiFile; +import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.checkers.CheckerTestUtil.DiagnosedRange; @@ -28,16 +33,16 @@ import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.test.ConfigurationKind; -import org.jetbrains.kotlin.test.KotlinLiteFixture; import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; import java.io.File; import java.util.Collections; import java.util.List; -public class CheckerTestUtilTest extends KotlinLiteFixture { - @Override - protected String getTestDataPath() { +public class CheckerTestUtilTest extends KotlinTestWithEnvironment { + @NotNull + private static String getTestDataPath() { return KotlinTestUtils.getTestDataPathBase() + "/diagnostics/checkerTestUtil"; } @@ -48,7 +53,28 @@ public class CheckerTestUtilTest extends KotlinLiteFixture { protected void doTest(TheTest theTest) throws Exception { String text = KotlinTestUtils.doLoadFile(getTestDataPath(), "test.kt"); - theTest.test(createCheckAndReturnPsiFile("test", null, text)); + theTest.test(createCheckAndReturnPsiFile("test.kt", text, getProject())); + } + + @NotNull + public static KtFile createCheckAndReturnPsiFile(@NotNull String fileName, @NotNull String text, @NotNull Project project) { + KtFile myFile = KotlinTestUtils.createFile(fileName, text, project); + ensureParsed(myFile); + assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString()); + assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile())); + //noinspection ConstantConditions + assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText()); + assertEquals("psi text mismatch", text, myFile.getText()); + return myFile; + } + + private static void ensureParsed(PsiFile file) { + file.accept(new PsiElementVisitor() { + @Override + public void visitElement(@NotNull PsiElement element) { + element.acceptChildren(this); + } + }); } public void testEquals() throws Exception { diff --git a/compiler/tests/org/jetbrains/kotlin/psi/KtPsiUtilTest.java b/compiler/tests/org/jetbrains/kotlin/psi/KtPsiUtilTest.java index 0f855b68cd3..0ef256edef5 100644 --- a/compiler/tests/org/jetbrains/kotlin/psi/KtPsiUtilTest.java +++ b/compiler/tests/org/jetbrains/kotlin/psi/KtPsiUtilTest.java @@ -25,8 +25,8 @@ import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.ImportPath; -import org.jetbrains.kotlin.test.KotlinLiteFixture; import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; import org.junit.Assert; import java.io.File; @@ -35,11 +35,12 @@ import java.util.Collection; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class KtPsiUtilTest extends KotlinLiteFixture { +public class KtPsiUtilTest extends KotlinTestWithEnvironment { @NotNull private KtFile loadPsiFile(@NotNull String name) { try { - return createPsiFile(name, null, KotlinTestUtils.doLoadFile(getTestDataPath(), name)); + String text = KotlinTestUtils.doLoadFile(KotlinTestUtils.getTestDataPathBase(), name); + return KotlinTestUtils.createFile(name + ".kt", text, getProject()); } catch (IOException e) { throw new RuntimeException(e); @@ -82,7 +83,7 @@ public class KtPsiUtilTest extends KotlinLiteFixture { } public void testIsLocalClass() throws IOException { - String text = FileUtil.loadFile(new File(getTestDataPath() + "/psiUtil/isLocalClass.kt"), true); + String text = FileUtil.loadFile(new File(KotlinTestUtils.getTestDataPathBase() + "/psiUtil/isLocalClass.kt"), true); KtClass aClass = KtPsiFactoryKt.KtPsiFactory(getProject()).createClass(text); @SuppressWarnings("unchecked") @@ -91,10 +92,10 @@ public class KtPsiUtilTest extends KotlinLiteFixture { for (KtClassOrObject classOrObject : classOrObjects) { String classOrObjectName = classOrObject.getName(); if (classOrObjectName != null && classOrObjectName.contains("Local")) { - assertTrue("JetPsiUtil.isLocalClass should return true for " + classOrObjectName, KtPsiUtil.isLocal(classOrObject)); + assertTrue("KtPsiUtil.isLocal should return true for " + classOrObjectName, KtPsiUtil.isLocal(classOrObject)); } else { - assertFalse("JetPsiUtil.isLocalClass should return false for " + classOrObjectName, KtPsiUtil.isLocal(classOrObject)); + assertFalse("KtPsiUtil.isLocal should return false for " + classOrObjectName, KtPsiUtil.isLocal(classOrObject)); } } } diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/AbstractResolveTest.java b/compiler/tests/org/jetbrains/kotlin/resolve/AbstractResolveTest.java index f3a58f9f011..fca1bdfc602 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/AbstractResolveTest.java +++ b/compiler/tests/org/jetbrains/kotlin/resolve/AbstractResolveTest.java @@ -17,21 +17,21 @@ package org.jetbrains.kotlin.resolve; import com.intellij.openapi.project.Project; +import org.jetbrains.kotlin.checkers.CheckerTestUtilTest; import org.jetbrains.kotlin.psi.KtFile; public abstract class AbstractResolveTest extends ExtensibleResolveTestCase { - @Override protected ExpectedResolveData getExpectedResolveData() { - Project project = getProject(); + final Project project = getProject(); return new ExpectedResolveData( ExpectedResolveDataUtil.prepareDefaultNameToDescriptors(project, getEnvironment()), ExpectedResolveDataUtil.prepareDefaultNameToDeclaration(project, getEnvironment()) ) { @Override - protected KtFile createJetFile(String fileName, String text) { - return createCheckAndReturnPsiFile(fileName, null, text); + protected KtFile createKtFile(String fileName, String text) { + return CheckerTestUtilTest.createCheckAndReturnPsiFile(fileName, text, project); } }; } diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/ExpectedResolveData.java b/compiler/tests/org/jetbrains/kotlin/resolve/ExpectedResolveData.java index df3e0020ded..34e673151e1 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/ExpectedResolveData.java +++ b/compiler/tests/org/jetbrains/kotlin/resolve/ExpectedResolveData.java @@ -25,7 +25,6 @@ import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.analyzer.AnalysisResult; -import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.diagnostics.Diagnostic; @@ -118,21 +117,21 @@ public abstract class ExpectedResolveData { text = text.substring(0, start) + text.substring(matcher.end()); } - KtFile jetFile = createJetFile(fileName, text); + KtFile ktFile = createKtFile(fileName, text); for (Map.Entry entry : intPositionToType.entrySet()) { - positionToType.put(new Position(jetFile, entry.getKey()), entry.getValue()); + positionToType.put(new Position(ktFile, entry.getKey()), entry.getValue()); } for (Map.Entry entry : declarationToIntPosition.entrySet()) { - declarationToPosition.put(entry.getKey(), new Position(jetFile, entry.getValue())); + declarationToPosition.put(entry.getKey(), new Position(ktFile, entry.getValue())); } for (Map.Entry entry : intPositionToReference.entrySet()) { - positionToReference.put(new Position(jetFile, entry.getKey()), entry.getValue()); + positionToReference.put(new Position(ktFile, entry.getKey()), entry.getValue()); } - return jetFile; + return ktFile; } - protected abstract KtFile createJetFile(String fileName, String text); + protected abstract KtFile createKtFile(String fileName, String text); protected static BindingContext analyze(List files, KotlinCoreEnvironment environment) { if (files.isEmpty()) { diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/constraintSystem/AbstractConstraintSystemTest.kt b/compiler/tests/org/jetbrains/kotlin/resolve/constraintSystem/AbstractConstraintSystemTest.kt index 9705f4f6a1e..938579f4101 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/constraintSystem/AbstractConstraintSystemTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/resolve/constraintSystem/AbstractConstraintSystemTest.kt @@ -26,16 +26,15 @@ import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPositionKind.SPECIAL import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil import org.jetbrains.kotlin.test.ConfigurationKind -import org.jetbrains.kotlin.test.KotlinLiteFixture import org.jetbrains.kotlin.test.KotlinTestUtils +import org.jetbrains.kotlin.test.KotlinTestWithEnvironment import org.jetbrains.kotlin.tests.di.createContainerForTests import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.Variance import java.io.File -abstract class AbstractConstraintSystemTest() : KotlinLiteFixture() { - +abstract class AbstractConstraintSystemTest : KotlinTestWithEnvironment() { private var _typeResolver: TypeResolver? = null private val typeResolver: TypeResolver get() = _typeResolver!! @@ -61,14 +60,13 @@ abstract class AbstractConstraintSystemTest() : KotlinLiteFixture() { super.tearDown() } - override fun getTestDataPath(): String { - return super.getTestDataPath() + "/constraintSystem/" - } + private val testDataPath: String + get() = KotlinTestUtils.getTestDataPathBase() + "/constraintSystem/" private fun analyzeDeclarations(): ConstraintSystemTestData { val fileName = "declarations.kt" - val psiFile = createPsiFile(null, fileName, KotlinTestUtils.doLoadFile(testDataPath, fileName))!! + val psiFile = KotlinTestUtils.createFile(fileName, KotlinTestUtils.doLoadFile(testDataPath, fileName), project) val bindingContext = JvmResolveUtil.analyzeOneFileWithJavaIntegrationAndCheckForErrors(psiFile).bindingContext return ConstraintSystemTestData(bindingContext, project, typeResolver) } diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/typeApproximation/CapturedTypeApproximationTest.kt b/compiler/tests/org/jetbrains/kotlin/resolve/typeApproximation/CapturedTypeApproximationTest.kt index e7d709f2827..26d19f9f97e 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/typeApproximation/CapturedTypeApproximationTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/resolve/typeApproximation/CapturedTypeApproximationTest.kt @@ -25,8 +25,8 @@ import org.jetbrains.kotlin.resolve.calls.inference.createCapturedType import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil import org.jetbrains.kotlin.test.ConfigurationKind -import org.jetbrains.kotlin.test.KotlinLiteFixture import org.jetbrains.kotlin.test.KotlinTestUtils +import org.jetbrains.kotlin.test.KotlinTestWithEnvironment import org.jetbrains.kotlin.types.TypeProjection import org.jetbrains.kotlin.types.TypeProjectionImpl import org.jetbrains.kotlin.types.TypeSubstitutor @@ -36,9 +36,9 @@ import org.jetbrains.kotlin.types.typesApproximation.approximateCapturedTypesIfN import java.io.File import java.util.* -class CapturedTypeApproximationTest() : KotlinLiteFixture() { - - override fun getTestDataPath() = "compiler/testData/capturedTypeApproximation/" +class CapturedTypeApproximationTest : KotlinTestWithEnvironment() { + private val testDataPath: String + get() = KotlinTestUtils.getTestDataPathBase() + "/capturedTypeApproximation/" override fun createEnvironment(): KotlinCoreEnvironment = createEnvironmentWithMockJdk(ConfigurationKind.JDK_ONLY) diff --git a/compiler/tests/org/jetbrains/kotlin/test/KotlinLiteFixture.java b/compiler/tests/org/jetbrains/kotlin/test/KotlinLiteFixture.java index 093c75861fd..1ddfb650a46 100644 --- a/compiler/tests/org/jetbrains/kotlin/test/KotlinLiteFixture.java +++ b/compiler/tests/org/jetbrains/kotlin/test/KotlinLiteFixture.java @@ -16,46 +16,5 @@ package org.jetbrains.kotlin.test; -import com.intellij.openapi.fileEditor.impl.LoadTextUtil; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiElementVisitor; -import com.intellij.psi.PsiFile; -import com.intellij.testFramework.LightVirtualFile; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.psi.KtFile; -import org.junit.Assert; - public abstract class KotlinLiteFixture extends KotlinTestWithEnvironment { - protected String getTestDataPath() { - return KotlinTestUtils.getTestDataPathBase(); - } - - protected KtFile createPsiFile(@Nullable String testName, @Nullable String fileName, String text) { - if (fileName == null) { - Assert.assertNotNull(testName); - fileName = testName + ".kt"; - } - return KotlinTestUtils.createFile(fileName, text, getProject()); - } - - private static void ensureParsed(PsiFile file) { - file.accept(new PsiElementVisitor() { - @Override - public void visitElement(@NotNull PsiElement element) { - element.acceptChildren(this); - } - }); - } - - protected KtFile createCheckAndReturnPsiFile(String testName, String fileName, String text) { - KtFile myFile = createPsiFile(testName, fileName, text); - ensureParsed(myFile); - assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString()); - assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile())); - //noinspection ConstantConditions - assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText()); - assertEquals("psi text mismatch", text, myFile.getText()); - return myFile; - } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageTest.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageTest.java index a2160f7076d..a441246cf9b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageTest.java @@ -35,8 +35,8 @@ import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm; import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.test.ConfigurationKind; -import org.jetbrains.kotlin.test.KotlinLiteFixture; import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; import java.io.File; import java.lang.reflect.Field; @@ -44,7 +44,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -public abstract class AbstractDiagnosticMessageTest extends KotlinLiteFixture { +public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnvironment { private static final String DIAGNOSTICS_NUMBER_DIRECTIVE = "DIAGNOSTICS_NUMBER"; private static final String DIAGNOSTICS_DIRECTIVE = "DIAGNOSTICS"; private static final String MESSAGE_TYPE_DIRECTIVE = "MESSAGE_TYPE"; @@ -68,7 +68,6 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinLiteFixture { } @NotNull - @Override protected String getTestDataPath() { return PluginTestCaseBase.getTestDataPathBase() + "/diagnosticMessage/"; } @@ -88,7 +87,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinLiteFixture { final Set> diagnosticFactories = getDiagnosticFactories(directives); MessageType messageType = getMessageTypeDirective(directives); - KtFile psiFile = createPsiFile(null, fileName, KotlinTestUtils.doLoadFile(getTestDataPath(), fileName)); + KtFile psiFile = KotlinTestUtils.createFile(fileName, KotlinTestUtils.doLoadFile(getTestDataPath(), fileName), getProject()); AnalysisResult analysisResult = analyze(psiFile); BindingContext bindingContext = analysisResult.getBindingContext();