User: joe Date: 08 Nov 25 23:20 Revision: 099a4e90489ce3ea30e91ade784d0ac6a05a8c4c Summary: Fix ME expression completion tests for unobf TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10247&personal=false Index: src/test/kotlin/platform/mixin/expression/MEExpressionCompletionTest.kt =================================================================== --- src/test/kotlin/platform/mixin/expression/MEExpressionCompletionTest.kt (revision 1a1fc0374c31f7ba9ddf380cbe5f9e5bc8d915f6) +++ src/test/kotlin/platform/mixin/expression/MEExpressionCompletionTest.kt (revision 099a4e90489ce3ea30e91ade784d0ac6a05a8c4c) @@ -23,11 +23,14 @@ import com.demonwav.mcdev.MinecraftProjectSettings import com.demonwav.mcdev.framework.EdtInterceptor import com.demonwav.mcdev.platform.mixin.BaseMixinTest +import com.demonwav.mcdev.platform.mixin.util.MissingLVTChecker import com.demonwav.mcdev.util.BeforeOrAfter import com.demonwav.mcdev.util.invokeDeclaredMethod import com.intellij.codeInsight.lookup.Lookup +import com.intellij.openapi.module.Module import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiFile +import com.intellij.testFramework.ExtensionTestUtil import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl import org.intellij.lang.annotations.Language import org.junit.jupiter.api.Assertions.assertEquals @@ -131,6 +134,48 @@ } @Test + @DisplayName("Local Variable Implicit Completion Test (No LVT)") + fun localVariableImplicitCompletionNoLVTTest() { + ExtensionTestUtil.addExtensions(MissingLVTChecker.EP_NAME, listOf(AlwaysMissingLVTChecker), fixture.testRootDisposable) + doBeforeAfterTest( + "one", + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Expression; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Expression("") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Definition; + import com.llamalad7.mixinextras.expression.Expression; + import com.llamalad7.mixinextras.sugar.Local; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Definition(id = "one", local = @Local(type = int.class)) + @Expression("one") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + ) + } + + @Test @DisplayName("Local Variable Implicit Completion Test") fun localVariableImplicitCompletionTest() { doBeforeAfterTest( @@ -163,7 +208,7 @@ @Mixin(MEExpressionTestData.class) class MEExpressionCompletionTest { - @Definition(id = "one", local = @Local(type = int.class)) + @Definition(id = "one", local = @Local(type = int.class, name = "one")) @Expression("one") @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) } @@ -172,6 +217,48 @@ } @Test + @DisplayName("Local Variable Ordinal Completion Test (No LVT)") + fun localVariableOrdinalCompletionNoLVTTest() { + ExtensionTestUtil.addExtensions(MissingLVTChecker.EP_NAME, listOf(AlwaysMissingLVTChecker), fixture.testRootDisposable) + doBeforeAfterTest( + "local1", + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Expression; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Expression("") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Definition; + import com.llamalad7.mixinextras.expression.Expression; + import com.llamalad7.mixinextras.sugar.Local; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Definition(id = "local1", local = @Local(type = String.class, ordinal = 0)) + @Expression("local1") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + ) + } + + @Test @DisplayName("Local Variable Ordinal Completion Test") fun localVariableOrdinalCompletionTest() { doBeforeAfterTest( @@ -204,7 +291,7 @@ @Mixin(MEExpressionTestData.class) class MEExpressionCompletionTest { - @Definition(id = "local1", local = @Local(type = String.class, ordinal = 0)) + @Definition(id = "local1", local = @Local(type = String.class, name = "local1")) @Expression("local1") @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) } @@ -213,6 +300,51 @@ } @Test + @DisplayName("Local Variable Inaccessible Type Completion Test (No LVT)") + fun localVariableInaccessibleTypeCompletionNoLVTTest() { + ExtensionTestUtil.addExtensions(MissingLVTChecker.EP_NAME, listOf(AlwaysMissingLVTChecker), fixture.testRootDisposable) + doBeforeAfterTest( + "varOfInaccessibleType", + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Definition; + import com.llamalad7.mixinextras.expression.Expression; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Definition(id = "acceptInaccessibleType", method = "Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData;acceptInaccessibleType(Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData${'$'}InaccessibleType;)V") + @Expression("acceptInaccessibleType()") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + """ + package test; + + import com.demonwav.mcdev.mixintestdata.meExpression.MEExpressionTestData; + import com.llamalad7.mixinextras.expression.Definition; + import com.llamalad7.mixinextras.expression.Expression; + import com.llamalad7.mixinextras.sugar.Local; + import org.spongepowered.asm.mixin.Mixin; + import org.spongepowered.asm.mixin.injection.At; + import org.spongepowered.asm.mixin.injection.Inject; + + @Mixin(MEExpressionTestData.class) + class MEExpressionCompletionTest { + @Definition(id = "acceptInaccessibleType", method = "Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData;acceptInaccessibleType(Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData${'$'}InaccessibleType;)V") + @Definition(id = "varOfInaccessibleType", local = @Local(ordinal = 0)) + @Expression("acceptInaccessibleType(varOfInaccessibleType)") + @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) + } + """.trimIndent(), + ) + } + + @Test @DisplayName("Local Variable Inaccessible Type Completion Test") fun localVariableInaccessibleTypeCompletionTest() { doBeforeAfterTest( @@ -248,7 +380,7 @@ @Mixin(MEExpressionTestData.class) class MEExpressionCompletionTest { @Definition(id = "acceptInaccessibleType", method = "Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData;acceptInaccessibleType(Lcom/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData${'$'}InaccessibleType;)V") - @Definition(id = "varOfInaccessibleType", local = @Local(ordinal = 0)) + @Definition(id = "varOfInaccessibleType", local = @Local(name = "varOfInaccessibleType")) @Expression("acceptInaccessibleType(varOfInaccessibleType)") @Inject(method = "complexFunction", at = @At("MIXINEXTRAS:EXPRESSION")) } @@ -672,4 +804,8 @@ """.trimIndent() ) } + + private object AlwaysMissingLVTChecker : MissingLVTChecker { + override fun hasMissingLVT(module: Module, className: String) = true -} + } +}