Inline KotlinLiteFixture#loadFile, refactor surroundings
This commit is contained in:
@@ -29,15 +29,16 @@ import org.jetbrains.kotlin.resolve.BindingContext;
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
||||||
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class CheckerTestUtilTest extends KotlinLiteFixture {
|
public class CheckerTestUtilTest extends KotlinLiteFixture {
|
||||||
|
@Override
|
||||||
public CheckerTestUtilTest() {
|
protected String getTestDataPath() {
|
||||||
super("diagnostics/checkerTestUtil");
|
return KotlinTestUtils.getTestDataPathBase() + "/diagnostics/checkerTestUtil";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -45,10 +46,9 @@ public class CheckerTestUtilTest extends KotlinLiteFixture {
|
|||||||
return createEnvironmentWithMockJdk(ConfigurationKind.ALL);
|
return createEnvironmentWithMockJdk(ConfigurationKind.ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void doTest(TheTest theTest) throws Exception {
|
protected void doTest(TheTest theTest) throws Exception {
|
||||||
prepareForTest("test");
|
String text = KotlinTestUtils.doLoadFile(getTestDataPath(), "test.kt");
|
||||||
theTest.test(getFile());
|
theTest.test(createCheckAndReturnPsiFile("test", null, text));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testEquals() throws Exception {
|
public void testEquals() throws Exception {
|
||||||
@@ -132,7 +132,7 @@ public class CheckerTestUtilTest extends KotlinLiteFixture {
|
|||||||
AbstractDiagnosticsTest test = new AbstractDiagnosticsTest() {
|
AbstractDiagnosticsTest test = new AbstractDiagnosticsTest() {
|
||||||
{setUp();}
|
{setUp();}
|
||||||
};
|
};
|
||||||
test.doTest(myFullDataPath + File.separatorChar + "test_with_diagnostic.kt");
|
test.doTest(getTestDataPath() + File.separatorChar + "test_with_diagnostic.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static abstract class TheTest {
|
private static abstract class TheTest {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.psi;
|
|||||||
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||||
@@ -25,6 +26,7 @@ import org.jetbrains.kotlin.name.FqName;
|
|||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath;
|
import org.jetbrains.kotlin.resolve.ImportPath;
|
||||||
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
import org.jetbrains.kotlin.test.KotlinLiteFixture;
|
||||||
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -34,6 +36,16 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class KtPsiUtilTest extends KotlinLiteFixture {
|
public class KtPsiUtilTest extends KotlinLiteFixture {
|
||||||
|
@NotNull
|
||||||
|
private KtFile loadPsiFile(@NotNull String name) {
|
||||||
|
try {
|
||||||
|
return createPsiFile(name, null, KotlinTestUtils.doLoadFile(getTestDataPath(), name));
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void testUnquotedIdentifier() {
|
public void testUnquotedIdentifier() {
|
||||||
Assert.assertEquals("", KtPsiUtil.unquoteIdentifier(""));
|
Assert.assertEquals("", KtPsiUtil.unquoteIdentifier(""));
|
||||||
Assert.assertEquals("a2", KtPsiUtil.unquoteIdentifier("a2"));
|
Assert.assertEquals("a2", KtPsiUtil.unquoteIdentifier("a2"));
|
||||||
|
|||||||
+2
-2
@@ -58,7 +58,7 @@ abstract class AbstractConstraintSystemTest() : KotlinLiteFixture() {
|
|||||||
override fun tearDown() {
|
override fun tearDown() {
|
||||||
_typeResolver = null
|
_typeResolver = null
|
||||||
_testDeclarations = null
|
_testDeclarations = null
|
||||||
super<KotlinLiteFixture>.tearDown()
|
super.tearDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getTestDataPath(): String {
|
override fun getTestDataPath(): String {
|
||||||
@@ -68,7 +68,7 @@ abstract class AbstractConstraintSystemTest() : KotlinLiteFixture() {
|
|||||||
private fun analyzeDeclarations(): ConstraintSystemTestData {
|
private fun analyzeDeclarations(): ConstraintSystemTestData {
|
||||||
val fileName = "declarations.kt"
|
val fileName = "declarations.kt"
|
||||||
|
|
||||||
val psiFile = createPsiFile(null, fileName, loadFile(fileName))!!
|
val psiFile = createPsiFile(null, fileName, KotlinTestUtils.doLoadFile(testDataPath, fileName))!!
|
||||||
val bindingContext = JvmResolveUtil.analyzeOneFileWithJavaIntegrationAndCheckForErrors(psiFile).bindingContext
|
val bindingContext = JvmResolveUtil.analyzeOneFileWithJavaIntegrationAndCheckForErrors(psiFile).bindingContext
|
||||||
return ConstraintSystemTestData(bindingContext, project, typeResolver)
|
return ConstraintSystemTestData(bindingContext, project, typeResolver)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,51 +21,17 @@ import com.intellij.psi.PsiElement;
|
|||||||
import com.intellij.psi.PsiElementVisitor;
|
import com.intellij.psi.PsiElementVisitor;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
import com.intellij.testFramework.LightVirtualFile;
|
import com.intellij.testFramework.LightVirtualFile;
|
||||||
import com.intellij.testFramework.TestDataFile;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.NonNls;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.psi.KtFile;
|
import org.jetbrains.kotlin.psi.KtFile;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment;
|
import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public abstract class KotlinLiteFixture extends KotlinTestWithEnvironment {
|
public abstract class KotlinLiteFixture extends KotlinTestWithEnvironment {
|
||||||
@NonNls
|
|
||||||
protected final String myFullDataPath;
|
|
||||||
private KtFile myFile;
|
|
||||||
|
|
||||||
public KotlinLiteFixture(@NonNls String dataPath) {
|
|
||||||
myFullDataPath = getTestDataPath() + "/" + dataPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public KotlinLiteFixture() {
|
|
||||||
myFullDataPath = getTestDataPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected KtFile getFile() {
|
|
||||||
return myFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String getTestDataPath() {
|
protected String getTestDataPath() {
|
||||||
return KotlinTestUtils.getTestDataPathBase();
|
return KotlinTestUtils.getTestDataPathBase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setUp() throws Exception {
|
|
||||||
super.setUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void tearDown() throws Exception {
|
|
||||||
myFile = null;
|
|
||||||
super.tearDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String loadFile(@NonNls @TestDataFile String name) throws IOException {
|
|
||||||
return KotlinTestUtils.doLoadFile(myFullDataPath, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected KtFile createPsiFile(@Nullable String testName, @Nullable String fileName, String text) {
|
protected KtFile createPsiFile(@Nullable String testName, @Nullable String fileName, String text) {
|
||||||
if (fileName == null) {
|
if (fileName == null) {
|
||||||
Assert.assertNotNull(testName);
|
Assert.assertNotNull(testName);
|
||||||
@@ -74,37 +40,21 @@ public abstract class KotlinLiteFixture extends KotlinTestWithEnvironment {
|
|||||||
return KotlinTestUtils.createFile(fileName, text, getProject());
|
return KotlinTestUtils.createFile(fileName, text, getProject());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected KtFile loadPsiFile(String name) {
|
private static void ensureParsed(PsiFile file) {
|
||||||
try {
|
|
||||||
return createPsiFile(name, null, loadFile(name));
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void ensureParsed(PsiFile file) {
|
|
||||||
file.accept(new PsiElementVisitor() {
|
file.accept(new PsiElementVisitor() {
|
||||||
@Override
|
@Override
|
||||||
public void visitElement(PsiElement element) {
|
public void visitElement(@NotNull PsiElement element) {
|
||||||
element.acceptChildren(this);
|
element.acceptChildren(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void prepareForTest(String name) throws IOException {
|
|
||||||
String text = loadFile(name + ".kt");
|
|
||||||
createAndCheckPsiFile(name, text);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void createAndCheckPsiFile(String name, String text) {
|
|
||||||
myFile = createCheckAndReturnPsiFile(name, null, text);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected KtFile createCheckAndReturnPsiFile(String testName, String fileName, String text) {
|
protected KtFile createCheckAndReturnPsiFile(String testName, String fileName, String text) {
|
||||||
KtFile myFile = createPsiFile(testName, fileName, text);
|
KtFile myFile = createPsiFile(testName, fileName, text);
|
||||||
ensureParsed(myFile);
|
ensureParsed(myFile);
|
||||||
assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString());
|
assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString());
|
||||||
assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile()));
|
assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile()));
|
||||||
|
//noinspection ConstantConditions
|
||||||
assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText());
|
assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText());
|
||||||
assertEquals("psi text mismatch", text, myFile.getText());
|
assertEquals("psi text mismatch", text, myFile.getText());
|
||||||
return myFile;
|
return myFile;
|
||||||
|
|||||||
@@ -51,17 +51,11 @@ import java.io.IOException;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class KotlinTypeCheckerTest extends KotlinLiteFixture {
|
public class KotlinTypeCheckerTest extends KotlinLiteFixture {
|
||||||
|
|
||||||
private KotlinBuiltIns builtIns;
|
private KotlinBuiltIns builtIns;
|
||||||
private LexicalScope scopeWithImports;
|
private LexicalScope scopeWithImports;
|
||||||
private TypeResolver typeResolver;
|
private TypeResolver typeResolver;
|
||||||
private ExpressionTypingServices expressionTypingServices;
|
private ExpressionTypingServices expressionTypingServices;
|
||||||
|
|
||||||
|
|
||||||
public KotlinTypeCheckerTest() {
|
|
||||||
super("");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected KotlinCoreEnvironment createEnvironment() {
|
protected KotlinCoreEnvironment createEnvironment() {
|
||||||
return createEnvironmentWithMockJdk(ConfigurationKind.ALL);
|
return createEnvironmentWithMockJdk(ConfigurationKind.ALL);
|
||||||
@@ -71,7 +65,6 @@ public class KotlinTypeCheckerTest extends KotlinLiteFixture {
|
|||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
|
||||||
|
|
||||||
ModuleDescriptorImpl module = KotlinTestUtils.createEmptyModule();
|
ModuleDescriptorImpl module = KotlinTestUtils.createEmptyModule();
|
||||||
builtIns = module.getBuiltIns();
|
builtIns = module.getBuiltIns();
|
||||||
ContainerForTests container = InjectionKt.createContainerForTests(getProject(), module);
|
ContainerForTests container = InjectionKt.createContainerForTests(getProject(), module);
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinLiteFixture {
|
|||||||
final Set<DiagnosticFactory<?>> diagnosticFactories = getDiagnosticFactories(directives);
|
final Set<DiagnosticFactory<?>> diagnosticFactories = getDiagnosticFactories(directives);
|
||||||
MessageType messageType = getMessageTypeDirective(directives);
|
MessageType messageType = getMessageTypeDirective(directives);
|
||||||
|
|
||||||
KtFile psiFile = createPsiFile(null, fileName, loadFile(fileName));
|
KtFile psiFile = createPsiFile(null, fileName, KotlinTestUtils.doLoadFile(getTestDataPath(), fileName));
|
||||||
AnalysisResult analysisResult = analyze(psiFile);
|
AnalysisResult analysisResult = analyze(psiFile);
|
||||||
BindingContext bindingContext = analysisResult.getBindingContext();
|
BindingContext bindingContext = analysisResult.getBindingContext();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user