From f57dfb3f2ec4181f2e767b82cdb2e24d1242c8fe Mon Sep 17 00:00:00 2001 From: Skylot Date: Tue, 9 Jul 2019 12:58:30 +0300 Subject: [PATCH] test: check method override with generic arguments (#701) --- .../generics/TestGenericsMthOverride.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/generics/TestGenericsMthOverride.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenericsMthOverride.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenericsMthOverride.java new file mode 100644 index 000000000..76f74a026 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenericsMthOverride.java @@ -0,0 +1,57 @@ +package jadx.tests.integration.generics; + +import org.junit.jupiter.api.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; + +public class TestGenericsMthOverride extends IntegrationTest { + + public static class TestCls { + public interface I { + Y method(X x); + } + + public static class A implements I { + @Override + public Y method(X x) { + return null; + } + } + + public static class B implements I { + @Override + public Y method(Object x) { + return null; + } + } + + public static class C implements I { + @Override + public Y method(Exception x) { + return null; + } + } + + public static class D implements I { + @Override + public Object method(Object x) { + return null; + } + } + } + + @Test + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("public Y method(X x) {")); + assertThat(code, containsOne("public Y method(Object x) {")); + assertThat(code, containsOne("public Y method(Exception x) {")); + assertThat(code, containsOne("public Object method(Object x) {")); + } +}