diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/a/pkg/A.java | 2 | ||||
-rw-r--r-- | src/test/java/b/pkg/B.java | 2 | ||||
-rw-r--r-- | src/test/kotlin/com/replaymod/gradle/remap/pattern/TestChangeMerging.kt | 36 | ||||
-rw-r--r-- | src/test/kotlin/com/replaymod/gradle/remap/util/TestData.kt | 8 |
4 files changed, 47 insertions, 1 deletions
diff --git a/src/test/java/a/pkg/A.java b/src/test/java/a/pkg/A.java index b5480d4..32fa2a9 100644 --- a/src/test/java/a/pkg/A.java +++ b/src/test/java/a/pkg/A.java @@ -10,6 +10,8 @@ public class A extends AParent implements AInterface { public A(A arg) { } + public static A create() { return new A(); } + public void aMethod() { aInterfaceMethod(); } diff --git a/src/test/java/b/pkg/B.java b/src/test/java/b/pkg/B.java index 88f46cf..3af7381 100644 --- a/src/test/java/b/pkg/B.java +++ b/src/test/java/b/pkg/B.java @@ -10,6 +10,8 @@ public class B extends BParent implements BInterface { public B(B arg) { } + public static B create() { return new B(); } + public void bMethod() { bInterfaceMethod(); } diff --git a/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestChangeMerging.kt b/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestChangeMerging.kt new file mode 100644 index 0000000..e8b86d2 --- /dev/null +++ b/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestChangeMerging.kt @@ -0,0 +1,36 @@ +package com.replaymod.gradle.remap.pattern + +import com.replaymod.gradle.remap.util.TestData +import io.kotest.matchers.collections.shouldHaveSize +import io.kotest.matchers.shouldBe +import io.kotest.matchers.string.shouldContain +import org.junit.jupiter.api.Test + +class TestChangeMerging { + @Test + fun `should work when mixed with remapping`() { + TestData.remap(""" + class Test { + private void test() { + a.pkg.A.create().aMethod(); + } + } + """.trimIndent(), """ + @remap.Pattern + private void addWrapping(a.pkg.A a) { + a.aMethod(); + } + """.trimIndent(), """ + @remap.Pattern + private void addWrapping(a.pkg.A a) { + (((a.bMethod()))); + } + """.trimIndent()) shouldBe """ + class Test { + private void test() { + (((b.pkg.B.create().bMethod()))); + } + } + """.trimIndent() + } +}
\ No newline at end of file diff --git a/src/test/kotlin/com/replaymod/gradle/remap/util/TestData.kt b/src/test/kotlin/com/replaymod/gradle/remap/util/TestData.kt index 0f83373..adb6f52 100644 --- a/src/test/kotlin/com/replaymod/gradle/remap/util/TestData.kt +++ b/src/test/kotlin/com/replaymod/gradle/remap/util/TestData.kt @@ -41,9 +41,15 @@ object TestData { findClasspathEntry("org.spongepowered.asm.mixin.Mixin"), findClasspathEntry("a.pkg.A"), ) + patternAnnotation = "remap.Pattern" } - fun remap(content: String): String = transformer.remap(mapOf("test.java" to content))["test.java"]!!.first + fun remap(content: String, patternsBefore: String = "", patternsAfter: String = ""): String = transformer.remap(mapOf( + "test.java" to content, + "pattern.java" to "class Patterns {\n$patternsBefore\n}", + ), mapOf( + "pattern.java" to "class Patterns {\n$patternsAfter\n}", + ))["test.java"]!!.first fun remapWithErrors(content: String) = transformer.remap(mapOf("test.java" to content))["test.java"]!! fun remapKt(content: String): String = transformer.remap(mapOf("test.kt" to content))["test.kt"]!!.first |