From d95d268ec5005a156ed44631112d05c02cd9ae9c Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 19 Mar 2016 16:21:32 +0300 Subject: [PATCH] core: test enum implementing interface --- .../integration/enums/TestEnumsInterface.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java new file mode 100644 index 000000000..8a652416d --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java @@ -0,0 +1,52 @@ +package jadx.tests.integration.enums; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; +import jadx.tests.api.utils.JadxMatchers; +import org.junit.Test; + +import static org.junit.Assert.assertThat; + +public class TestEnumsInterface extends IntegrationTest { + + public static class TestCls { + + public enum Operation implements IOperation { + PLUS { + public int apply(int x, int y) { + return x + y; + } + }, + MINUS { + public int apply(int x, int y) { + return x - y; + } + }; + } + + public interface IOperation { + int apply(int x, int y); + } + } + + @Test + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, JadxMatchers.containsLines(1, + "public enum Operation implements IOperation {", + indent(1) + "PLUS {", + indent(2) + "public int apply(int x, int y) {", + indent(3) + "return x + y;", + indent(2) + "}", + indent(1) + "},", + indent(1) + "MINUS {", + indent(2) + "public int apply(int x, int y) {", + indent(3) + "return x - y;", + indent(2) + "}", + indent(1) + "}", + "}" + )); + } +}