package com.intellij.codeInspection.tests.java import com.intellij.jvm.analysis.internal.testFramework.SerializableHasSerialVersionUidFieldInspectionTestBase import com.intellij.jvm.analysis.testFramework.JvmLanguage import com.intellij.pom.java.LanguageLevel class JavaSerializableHasSerialVersionUidFieldInspectionTest : SerializableHasSerialVersionUidFieldInspectionTestBase() { fun `test highlighting`() { myFixture.testHighlighting(JvmLanguage.JAVA, """ import java.io.Serializable; class Foo implements Serializable { } """.trimIndent()) } fun `test quickfix`() { myFixture.setLanguageLevel(LanguageLevel.JDK_11) // no @Serial annotation for any JDK lower than 14 myFixture.testQuickFix(JvmLanguage.JAVA, """ import java.io.Serializable; class Foo implements Serializable { } """.trimIndent(), """ import java.io.Serializable; class Foo implements Serializable { private static final long serialVersionUID = -4454552974617678229L; } """.trimIndent(), "Create constant field 'serialVersionUID' in 'Foo'") } fun `test quickfix @Serial annotation`() { myFixture.setLanguageLevel(LanguageLevel.JDK_14) // @Serial was introduced in JDK 14 myFixture.testQuickFix(JvmLanguage.JAVA, """ import java.io.Serializable; class Foo implements Serializable { } """.trimIndent(), """ import java.io.Serial; import java.io.Serializable; class Foo implements Serializable { @Serial private static final long serialVersionUID = -4454552974617678229L; } """.trimIndent(), "Create constant field 'serialVersionUID' in 'Foo'") } }