[java, inspection, fix] IDEA-338231

- Rename an inspection class
- Add a code example in the documentation
- Support RunWith in interfaces
- Visit classes instead of annotations

GitOrigin-RevId: 2cbbe679fc77e81838cae02a6f4f4242a0e028d5
This commit is contained in:
Aleksey Dobrynin
2023-12-01 11:21:27 +01:00
committed by intellij-monorepo-bot
parent 2a54c5ae5c
commit ff17b6dabf
7 changed files with 119 additions and 24 deletions

View File

@@ -1,10 +1,10 @@
package com.intellij.codeInspection.tests.java.test.junit
import com.intellij.jvm.analysis.internal.testFramework.test.junit.JUnit4RunWithInspectionTestBase
import com.intellij.jvm.analysis.internal.testFramework.test.junit.TestCaseWithMultipleRunnersInspectionTestBase
import com.intellij.jvm.analysis.testFramework.JvmLanguage
class JUnit4RunWithInspectionJavaTest : JUnit4RunWithInspectionTestBase() {
class TestCaseWithMultipleRunnersInspectionJavaTest : TestCaseWithMultipleRunnersInspectionTestBase() {
fun `test parent annotation`() {
myFixture.addClass("""
@org.junit.runner.RunWith(org.junit.runners.Suite.class)
@@ -22,7 +22,52 @@ class JUnit4RunWithInspectionJavaTest : JUnit4RunWithInspectionTestBase() {
""".trimIndent())
}
fun `test inherited annotation`() {
fun `test interface annotation`() {
myFixture.addClass("""
@org.junit.runner.RunWith(org.junit.runners.Suite.class)
@org.junit.runners.Suite.SuiteClasses(Object.class)
interface ParentTestBaseSuite {
}
""".trimIndent())
myFixture.testHighlighting(JvmLanguage.JAVA, """
@org.junit.runner.<warning descr="@RunWith annotation already exists in ParentTestBaseSuite class">RunWith</warning>(org.junit.runners.Parameterized.class)
class MyTest implements ParentTestBaseSuite {
@org.junit.Test
public void test() {
}
}
""".trimIndent())
}
fun `test inherited annotation1`() {
myFixture.addClass("""
@org.junit.runner.RunWith(org.junit.runners.Suite.class)
@org.junit.runners.Suite.SuiteClasses(Object.class)
interface SecondParentSuite {
}
""".trimIndent())
myFixture.addClass("""
interface FirstParent extends SecondParentSuite {
}
""".trimIndent())
myFixture.addClass("""
interface DummyInterface {
}
""".trimIndent())
myFixture.testHighlighting(JvmLanguage.JAVA, """
@org.junit.runner.<warning descr="@RunWith annotation already exists in SecondParentSuite class">RunWith</warning>(org.junit.runners.Parameterized.class)
class MyTest implements DummyInterface, FirstParent {
@org.junit.Test
public void test() {
}
}
""".trimIndent())
}
fun `test inherited annotation2`() {
myFixture.addClass("""
@org.junit.runner.RunWith(org.junit.runners.Suite.class)
@org.junit.runners.Suite.SuiteClasses(Object.class)