diff options
Diffstat (limited to 'src/test/kotlin/com/replaymod/gradle/remap')
-rw-r--r-- | src/test/kotlin/com/replaymod/gradle/remap/pattern/TestNewExpression.kt | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestNewExpression.kt b/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestNewExpression.kt new file mode 100644 index 0000000..669cffb --- /dev/null +++ b/src/test/kotlin/com/replaymod/gradle/remap/pattern/TestNewExpression.kt @@ -0,0 +1,69 @@ +package com.replaymod.gradle.remap.pattern + +import com.replaymod.gradle.remap.util.TestData +import io.kotest.matchers.shouldBe +import org.junit.jupiter.api.Test + +class TestNewExpression { + @Test + fun `should find regular constructor`() { + TestData.remap(""" + class Test { + private void test() { + new a.pkg.A(null); + new a.pkg.A().new a.pkg.A.Inner(); + new a.pkg.AParent(null); + } + } + """.trimIndent(), """ + @remap.Pattern + private a.pkg.A matchNew(a.pkg.A arg) { + return new a.pkg.A(arg); + } + """.trimIndent(), """ + @remap.Pattern + private b.pkg.B matchNew(b.pkg.B arg) { + return arg; + } + """.trimIndent()) shouldBe """ + class Test { + private void test() { + null; + new b.pkg.B().new b.pkg.B.Inner(); + new b.pkg.BParent(null); + } + } + """.trimIndent() + } + + @Test + fun `should find inner class constructor`() { + TestData.remap(""" + class Test { + private void test() { + new a.pkg.A(null); + new a.pkg.A().new Inner(); + new a.pkg.AParent(null); + } + } + """.trimIndent(), """ + @remap.Pattern + private a.pkg.A.Inner matchNew(a.pkg.A arg) { + return arg.new a.pkg.A.Inner(); + } + """.trimIndent(), """ + @remap.Pattern + private b.pkg.B matchNew(b.pkg.B arg) { + return arg; + } + """.trimIndent()) shouldBe """ + class Test { + private void test() { + new b.pkg.B(null); + new b.pkg.B(); + new b.pkg.BParent(null); + } + } + """.trimIndent() + } +}
\ No newline at end of file |