mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] J2K tests: load dependency files only if needed
Most tests don't need them. GitOrigin-RevId: 0060a4d1be0b2beb5cdb08d7ec477625edd2455a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3a64261060
commit
bd3a0b4684
+14
-2
@@ -18,6 +18,10 @@ import java.util.regex.Pattern
|
||||
|
||||
private val testHeaderPattern: Pattern = Pattern.compile("//(expression|statement|method)\n")
|
||||
|
||||
private const val JPA_ANNOTATIONS_DIRECTIVE = "ADD_JPA_ANNOTATIONS"
|
||||
private const val KOTLIN_API_DIRECTIVE = "ADD_KOTLIN_API"
|
||||
private const val JAVA_API_DIRECTIVE = "ADD_JAVA_API"
|
||||
|
||||
abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotlinConverterTest() {
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
@@ -43,10 +47,12 @@ abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotli
|
||||
}
|
||||
|
||||
private fun doTest(javaFile: File, fileContents: String) {
|
||||
addExternalFiles(javaFile)
|
||||
|
||||
val (prefix, javaCode) = getPrefixAndJavaCode(fileContents)
|
||||
val directives = KotlinTestUtils.parseDirectives(javaCode)
|
||||
|
||||
addExternalFiles(javaFile)
|
||||
addDependencies(directives)
|
||||
|
||||
val settings = configureSettings(directives)
|
||||
val convertedText = convertJavaToKotlin(prefix, javaCode, settings)
|
||||
val expectedFile = File(javaFile.path.replace(".java", ".kt"))
|
||||
@@ -62,6 +68,12 @@ abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotli
|
||||
KotlinTestUtils.assertEqualsToFile(expectedFile, actualText)
|
||||
}
|
||||
|
||||
private fun addDependencies(directives: Directives) {
|
||||
if (directives.contains(JPA_ANNOTATIONS_DIRECTIVE)) addJpaColumnAnnotations()
|
||||
if (directives.contains(KOTLIN_API_DIRECTIVE)) addFile("KotlinApi.kt", "kotlinApi")
|
||||
if (directives.contains(JAVA_API_DIRECTIVE)) addFile("JavaApi.java", "javaApi")
|
||||
}
|
||||
|
||||
private fun addExternalFiles(javaFile: File) {
|
||||
val externalFileName = "${javaFile.nameWithoutExtension}.external"
|
||||
val externalFiles = javaFile.parentFile.listFiles { _, name ->
|
||||
|
||||
+2
-21
@@ -19,15 +19,7 @@ private val ignoreDirectives: Set<String> = setOf(IGNORE_K1, IGNORE_K2)
|
||||
abstract class AbstractJavaToKotlinConverterTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
override fun getProjectDescriptor(): LightProjectDescriptor = J2K_PROJECT_DESCRIPTOR
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
addFile("KotlinApi.kt", "kotlinApi")
|
||||
addFile("JavaApi.java", "javaApi")
|
||||
addJavaLangRecordClass()
|
||||
addJpaColumnAnnotations()
|
||||
}
|
||||
|
||||
private fun addFile(fileName: String, dirName: String? = null) {
|
||||
protected fun addFile(fileName: String, dirName: String? = null) {
|
||||
addFile(File(KotlinRoot.DIR, "j2k/shared/tests/testData/$fileName"), dirName)
|
||||
}
|
||||
|
||||
@@ -56,18 +48,7 @@ abstract class AbstractJavaToKotlinConverterTest : KotlinLightCodeInsightFixture
|
||||
protected fun KtFile.getFileTextWithErrors(): String =
|
||||
if (isFirPlugin) getK2FileTextWithErrors(this) else dumpTextWithErrors()
|
||||
|
||||
// Needed to make the Kotlin compiler think it is running on JDK 16+
|
||||
// see org.jetbrains.kotlin.resolve.jvm.checkers.JvmRecordApplicabilityChecker
|
||||
private fun addJavaLangRecordClass() {
|
||||
myFixture.addClass(
|
||||
"""
|
||||
package java.lang;
|
||||
public abstract class Record {}
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
private fun addJpaColumnAnnotations() {
|
||||
protected fun addJpaColumnAnnotations() {
|
||||
myFixture.addClass(
|
||||
"""
|
||||
package javax.persistence;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import Anon.E
|
||||
|
||||
internal annotation class Anon(val value: String) {
|
||||
enum class E {
|
||||
A, B
|
||||
@@ -11,6 +13,6 @@ internal annotation class Anon(val value: String) {
|
||||
@Anon("a")
|
||||
internal interface I {
|
||||
companion object {
|
||||
val e: Anon.E = Anon.field
|
||||
val e: E = Anon.field
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.*;
|
||||
|
||||
@Anon1(value = {"a"}, stringArray = {"b"}, intArray = {1, 2}, string = "x")
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.SpecialExternal;
|
||||
|
||||
//Annotation class:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.Anon5;
|
||||
import javaApi.TypeUseAnon1;
|
||||
import javaApi.TypeUseAnon2;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
package test;
|
||||
|
||||
import javaApi.*;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_JAVA_API
|
||||
package test
|
||||
|
||||
import javaApi.Listener
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.Anon5;
|
||||
|
||||
class A {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
package test;
|
||||
|
||||
import kotlinApi.*;
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
package test
|
||||
|
||||
import kotlinApi.KotlinClassAbstractProperty
|
||||
|
||||
+2
@@ -1,4 +1,6 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
// !ADD_JAVA_API
|
||||
import kotlinApi.KotlinClassWithProperties;
|
||||
import javaApi.JavaClassWithProperties;
|
||||
import javaApi.JavaClassDerivedFromKotlinClassWithProperties;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
package test;
|
||||
|
||||
import javaApi.*;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_JAVA_API
|
||||
package test
|
||||
|
||||
import javaApi.JFunction0
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// IGNORE_K2
|
||||
public class TestNestedClassesHierarchy {
|
||||
public static class Base {}
|
||||
public static class Derived extends Base {}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinClass;
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.*
|
||||
|
||||
class A {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.*;
|
||||
|
||||
class A {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinApiKt;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.*
|
||||
|
||||
class C extends KotlinClass {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinObject;
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.*
|
||||
|
||||
class C {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.*
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinApiKt.*;
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinObject.*;
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinClass.CONST;
|
||||
|
||||
public class C {
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinClass.*;
|
||||
|
||||
public class C {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinClass.getStaticProperty;
|
||||
|
||||
class C {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
import static kotlinApi.KotlinApiKt.extensionFunction;
|
||||
import static kotlinApi.KotlinApiKt.getExtensionProperty;
|
||||
import static kotlinApi.KotlinApiKt.setExtensionProperty;
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
public class J {
|
||||
public static void adjust(String name, int maxLen) {
|
||||
String.valueOf(1 + 1);
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
import kotlinApi.extensionFunction
|
||||
|
||||
// !ADD_KOTLIN_API
|
||||
object J {
|
||||
fun adjust(name: String?, maxLen: Int) {
|
||||
(1 + 1).toString()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.WithVarargConstructor;
|
||||
|
||||
import java.lang.String;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
package javaApi;
|
||||
|
||||
import kotlinApi.KotlinClass;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !ADD_KOTLIN_API
|
||||
package javaApi
|
||||
|
||||
import kotlinApi.KotlinClass
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
import kotlinApi.KotlinInterface;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
// JVM_TARGET: 17
|
||||
import javaApi.Anon5;
|
||||
import javaApi.TypeUseAnon1;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
class C extends javaApi.Derived {
|
||||
public String foo(String s) { return s; }
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import javaApi.Derived
|
||||
|
||||
// !ADD_JAVA_API
|
||||
internal class C : Derived() {
|
||||
override fun foo(s: String?): String? {
|
||||
return s
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_KOTLIN_API
|
||||
// !ADD_JAVA_API
|
||||
import java.util.HashMap;
|
||||
import kotlinApi.KotlinClass;
|
||||
import javaApi.JavaClass;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// IGNORE_K2
|
||||
public class TestInnerClasses {
|
||||
public class Base {}
|
||||
public class Derived extends Base {}
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import javaApi.Base;
|
||||
|
||||
class C extends Base {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_JPA_ANNOTATIONS
|
||||
public class J {
|
||||
@javax.persistence.Column
|
||||
private String title;
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
import javax.persistence.Column
|
||||
|
||||
// !ADD_JPA_ANNOTATIONS
|
||||
class J {
|
||||
@Column
|
||||
private var title: String? = null
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
import java.util.*;
|
||||
import javaApi.T;
|
||||
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// IGNORE_K2
|
||||
// !ADD_JAVA_API
|
||||
package test;
|
||||
|
||||
import javaApi.*;
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !ADD_JAVA_API
|
||||
package test
|
||||
|
||||
import javaApi.MethodReferenceHelperClass
|
||||
|
||||
Reference in New Issue
Block a user