From 01dfae4ac7e799995457de33380c1792d5ccef84 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 12 Apr 2019 17:15:08 +0200 Subject: [PATCH] test: add test case for anonymous type, and move assertions to NYI (PR #589) --- .../inner/TestAnonymousClass13.java | 23 +++++++++++++++++++ .../inner/TestAnonymousClass2.java | 5 ++-- .../inner/TestAnonymousClass3.java | 16 ++++++++++--- 3 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass13.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass13.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass13.java new file mode 100644 index 000000000..6cfc8dbb2 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass13.java @@ -0,0 +1,23 @@ +package jadx.tests.integration.inner; + +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.tests.api.IntegrationTest; + +public class TestAnonymousClass13 extends IntegrationTest { + + public static class TestCls { + + public void test() { + new TestCls() { + }; + } + } + + @Test + @NotYetImplemented + public void test() { + getClassNode(TestCls.class); + } +} diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java index 9acc7374e..ee816efd0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java @@ -33,7 +33,7 @@ public class TestAnonymousClass2 extends IntegrationTest { } }; } - /* + public Runnable test3() { final int i = f + 2; return new Runnable() { @@ -43,7 +43,6 @@ public class TestAnonymousClass2 extends IntegrationTest { } }; } - */ } } @@ -55,7 +54,7 @@ public class TestAnonymousClass2 extends IntegrationTest { assertThat(code, not(containsString("synthetic"))); assertThat(code, not(containsString("AnonymousClass_"))); assertThat(code, containsString("f = 1;")); -// assertThat(code, containsString("f = i;")); + assertThat(code, containsString("f = i;")); assertThat(code, not(containsString("Inner obj = ;"))); assertThat(code, containsString("Inner.this;")); } diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java index 2b2cf6804..109f6925c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java @@ -2,11 +2,13 @@ package jadx.tests.integration.inner; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.not; public class TestAnonymousClass3 extends IntegrationTest { @@ -47,9 +49,17 @@ public class TestAnonymousClass3 extends IntegrationTest { assertThat(code, containsString(indent(4) + "public void run() {")); assertThat(code, containsString(indent(3) + "}.start();")); -// assertThat(code, not(containsString("synthetic"))); -// assertThat(code, not(containsString("AnonymousClass_"))); + assertThat(code, not(containsString("AnonymousClass_"))); + } -// assertThat(code, containsString("a = f--;")); + @Test + @NotYetImplemented + public void test2() { + disableCompilation(); + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("synthetic"))); + assertThat(code, containsString("a = f--;")); } }