From de4752f4cc0446567c8ab2f7e79923ca0ec8f228 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 8 Nov 2016 12:22:39 +0700 Subject: [PATCH] PsiElementConcatenationInspectionTest: mock library interfaces instead of actually loading them as library (IDEA-CR-15335) --- .../LightPlatformCodeInsightTestCase.java | 9 +++++ ...PsiElementConcatenationInspectionTest.java | 40 ++++++++++--------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java index 2a35ff76b0e6..0807aaaa09d8 100644 --- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java @@ -252,6 +252,15 @@ public abstract class LightPlatformCodeInsightTestCase extends LightPlatformTest }); } + @NotNull + protected static VirtualFile createAndSaveFile(@NotNull String relativePath, @NotNull String fileText) throws IOException { + return WriteCommandAction.runWriteCommandAction(getProject(), (ThrowableComputable)() -> { + VirtualFile myVFile = VfsTestUtil.createFile(getSourceRoot(),relativePath); + VfsUtil.saveText(myVFile, fileText); + return myVFile; + }); + } + private static void setupEditorForInjectedLanguage() { if (myEditor != null) { final Ref editorWindowRef = new Ref<>(); diff --git a/plugins/devkit/testSources/inspections/PsiElementConcatenationInspectionTest.java b/plugins/devkit/testSources/inspections/PsiElementConcatenationInspectionTest.java index 3f55b45b4a56..81b9eced9bd6 100644 --- a/plugins/devkit/testSources/inspections/PsiElementConcatenationInspectionTest.java +++ b/plugins/devkit/testSources/inspections/PsiElementConcatenationInspectionTest.java @@ -18,29 +18,31 @@ package org.jetbrains.idea.devkit.inspections; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase; import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.openapi.application.PluginPathManager; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiElementFactory; -import com.intellij.testFramework.LightProjectDescriptor; -import com.intellij.testFramework.PsiTestUtil; -import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor; -import com.intellij.util.PathUtil; import org.jetbrains.annotations.NotNull; +import java.io.IOException; +import java.io.UncheckedIOException; + public class PsiElementConcatenationInspectionTest extends LightQuickFixParameterizedTestCase { - @NotNull @Override - protected LightProjectDescriptor getProjectDescriptor() { - return new DefaultLightProjectDescriptor() { - @Override - public void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) { - super.configureModule(module, model, contentEntry); - PsiTestUtil.addLibrary(module, model, "core-api", "", PathUtil.getJarPathForClass(PsiElement.class)); - PsiTestUtil.addLibrary(module, model, "java-psi-api", "", PathUtil.getJarPathForClass(PsiElementFactory.class)); - } - }; + protected void beforeActionStarted(String testName, String contents) { + try { + createAndSaveFile("com/intellij/psi/PsiElement.java", + "package com.intellij.psi;interface PsiElement {}"); + createAndSaveFile("com/intellij/psi/PsiExpression.java", + "package com.intellij.psi;interface PsiExpression extends PsiElement {}"); + createAndSaveFile("com/intellij/psi/PsiType.java", + "package com.intellij.psi;interface PsiType {}"); + createAndSaveFile("com/intellij/psi/PsiElementFactory.java", + "package com.intellij.psi;\n" + + "interface PsiElementFactory {\n" + + "PsiExpression createExpressionFromText(String str, PsiElement context);\n" + + "}"); + } + catch (IOException e) { + throw new UncheckedIOException(e); + } + super.beforeActionStarted(testName, contents); } @NotNull