package com.intellij.codeInspection.tests.kotlin
import com.intellij.jvm.analysis.internal.testFramework.MustAlreadyBeRemovedApiInspectionTestBase
import com.intellij.jvm.analysis.testFramework.JvmLanguage
import org.jetbrains.kotlin.idea.test.ExpectedPluginModeProvider
import org.jetbrains.kotlin.idea.test.setUpWithKotlinPlugin
abstract class KotlinMustAlreadyBeRemovedApiInspectionTest : MustAlreadyBeRemovedApiInspectionTestBase(), ExpectedPluginModeProvider {
override fun setUp() {
setUpWithKotlinPlugin(testRootDisposable) { super.setUp() }
}
fun `test APIs must have been removed`() {
inspection.currentVersion = "3.0"
myFixture.testHighlighting(JvmLanguage.KOTLIN, """
import org.jetbrains.annotations.ApiStatus
@ApiStatus.ScheduledForRemoval(inVersion = "2.0")
@Deprecated("")
class Warnings {
@ApiStatus.ScheduledForRemoval(inVersion = "2.0")
@Deprecated("")
var field: String? = null
@ApiStatus.ScheduledForRemoval(inVersion = "2.0")
@Deprecated("")
fun method() {
}
}
//No warnings should be produced.
@Deprecated("")
@ApiStatus.ScheduledForRemoval(inVersion = "5.0")
class NoWarnings {
@Deprecated("")
@ApiStatus.ScheduledForRemoval(inVersion = "5.0")
var field: String? = null
@Deprecated("")
@ApiStatus.ScheduledForRemoval(inVersion = "5.0")
fun method() {
}
}
""".trimIndent())
}
}