diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/afterGuavaNullable.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/afterGuavaNullable.java new file mode 100644 index 000000000000..007fbb6d4e2a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/afterGuavaNullable.java @@ -0,0 +1,6 @@ +// "Replace with '.fromNullable()'" "true" +class A{ + void test(){ + com.google.common.base.Optional.fromNullable(null); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/beforeGuavaNullable.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/beforeGuavaNullable.java new file mode 100644 index 000000000000..a438e6a82110 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable/beforeGuavaNullable.java @@ -0,0 +1,6 @@ +// "Replace with '.fromNullable()'" "true" +class A{ + void test(){ + com.google.common.base.Optional.of(null); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceFromOfNullableFixTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceFromOfNullableFixTest.groovy index d1670967ab55..15ef5ff77f14 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceFromOfNullableFixTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceFromOfNullableFixTest.groovy @@ -14,19 +14,14 @@ * limitations under the License. */ -/* - * User: anna - * Date: 21-Mar-2008 - */ package com.intellij.codeInsight.daemon.quickFix import com.intellij.codeInspection.LocalInspectionTool import com.intellij.codeInspection.dataFlow.DataFlowInspection +import com.intellij.openapi.Disposable import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VirtualFile -import com.intellij.psi.JavaPsiFacade -import com.intellij.psi.search.GlobalSearchScope import com.intellij.testFramework.IdeaTestUtil import org.jetbrains.annotations.NotNull @@ -46,11 +41,7 @@ public class ReplaceFromOfNullableFixTest extends LightQuickFixParameterizedTest return "/codeInsight/daemonCodeAnalyzer/quickFix/replaceFromOfNullable"; } - static void addGuavaOptional() { - if (JavaPsiFacade.getInstance(project).findClass("com.google.common.base.Optional", GlobalSearchScope.allScope(project))) { - return - } - + static void addGuavaOptional(Disposable parent) { WriteCommandAction.runWriteCommandAction(project) { VirtualFile optional = getSourceRoot() .createChildDirectory(this, "com") @@ -63,22 +54,34 @@ package com.google.common.base; public abstract class Optional { public static Optional absent() { } - public static Optional of(T reference) { } + public static Optional of(@org.jetbrains.annotations.NotNull T reference) { } - public static Optional fromNullable(@Nullable T nullableReference) { } + public static Optional fromNullable(T nullableReference) { } } """) } } + static void cleanupGuava() { + WriteCommandAction.runWriteCommandAction(project) { + getSourceRoot().findChild("com")?.delete(this) + } + } + @Override protected void beforeActionStarted(String testName, String contents) { if (testName.contains("Guava")) { - addGuavaOptional() + addGuavaOptional(testRootDisposable) } super.beforeActionStarted(testName, contents) } + @Override + protected void afterActionCompleted(String testName, String contents) { + cleanupGuava() + super.afterActionCompleted(testName, contents) + } + @Override protected Sdk getProjectJDK() { return IdeaTestUtil.getMockJdk18(); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceWithOfNullableFixTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceWithOfNullableFixTest.java index 6eef97352f65..9c5c07013b7e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceWithOfNullableFixTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/ReplaceWithOfNullableFixTest.java @@ -42,6 +42,20 @@ public class ReplaceWithOfNullableFixTest extends LightQuickFixParameterizedTest return "/codeInsight/daemonCodeAnalyzer/quickFix/replaceWithOfNullable"; } + @Override + protected void beforeActionStarted(String testName, String contents) { + if (testName.contains("Guava")) { + ReplaceFromOfNullableFixTest.addGuavaOptional(myTestRootDisposable); + } + super.beforeActionStarted(testName, contents); + } + + @Override + protected void afterActionCompleted(String testName, String contents) { + ReplaceFromOfNullableFixTest.cleanupGuava(); + super.afterActionCompleted(testName, contents); + } + @Override protected Sdk getProjectJDK() { return IdeaTestUtil.getMockJdk18();