Files
openide/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/JavaObsoleteApiUsageInspectionTest.kt
Bart van Helvert ba513a4d88 [jvm] Rename shared.testFramework to internal.TestFramework
To better highlight that this test framework is for internal usage only. #IDEA-334017

GitOrigin-RevId: c491de2411cdffd6eee3e97a6273982560572f4b
2023-10-11 23:39:50 +00:00

67 lines
2.3 KiB
Kotlin

package com.intellij.codeInspection.tests.java
import com.intellij.jvm.analysis.internal.testFramework.ObsoleteApiUsageInspectionTestBase
import com.intellij.jvm.analysis.testFramework.JvmLanguage
class JavaObsoleteApiUsageInspectionTest : ObsoleteApiUsageInspectionTestBase() {
fun `test direct usage`() {
myFixture.testHighlighting(JvmLanguage.JAVA, """
class B {
void f(A a) {
a.<warning descr="Obsolete API is used">f</warning>();
}
}
""".trimIndent())
}
fun `test override`() {
myFixture.testHighlighting(JvmLanguage.JAVA, """
class C extends A {
void <warning descr="Obsolete API is used">f</warning>() {}
}
@org.jetbrains.annotations.ApiStatus.Obsolete
class D extends A {
void <warning descr="Obsolete API is used">f</warning>() {}
}
""".trimIndent())
}
fun `test generic reference`() {
myFixture.addClass("@org.jetbrains.annotations.ApiStatus.Obsolete interface I<T> {}")
myFixture.testHighlighting(JvmLanguage.JAVA, """
class U {
void u(<warning descr="Obsolete API is used">I</warning><Integer> i) {}
}
""".trimIndent())
}
fun `test method reference`() {
myFixture.addClass("import org.jetbrains.annotations.ApiStatus;\n" +
"\n" +
"@ApiStatus.Obsolete\n" +
"@FunctionalInterface\n" +
"public interface MyFn {\n" +
"\tvoid consumer(int x);\n" +
"}\n")
myFixture.addClass("import org.jetbrains.annotations.ApiStatus;\n" +
"\n" +
"public class MyClass {\n" +
" @ApiStatus.Obsolete\n" +
" public MyClass(int x) {}\n" +
"}")
myFixture.testHighlighting(JvmLanguage.JAVA, """class Use {
void test(<warning descr="Obsolete API is used">MyFn</warning> fn) {
fn.consumer(1);
}
void use2() {
test(StringBuilder::new);
test(new StringBuilder()::append);
test(MyClass::<warning descr="Obsolete API is used">new</warning>);
test(x -> new <warning descr="Obsolete API is used">MyClass</warning>(x));
test(capacity -> new StringBuilder(capacity));
}
}""".trimIndent())
}
}