package jadx.tests.integration.others; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.junit.Test; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertThat; public class TestFieldInit extends IntegrationTest { public static class TestCls { public class A { } private static List<String> s = new ArrayList<String>(); private A a = new A(); private int i = 1 + Random.class.getSimpleName().length(); private int n = 0; public TestCls(int z) { this.n = z; this.n = 0; } } @Test public void test() { ClassNode cls = getClassNode(TestCls.class); String code = cls.getCode().toString(); assertThat(code, containsOne("List<String> s = new ArrayList")); assertThat(code, containsOne("A a = new A();")); assertThat(code, containsOne("int i = (Random.class.getSimpleName().length() + 1);")); assertThat(code, containsOne("int n = 0;")); assertThat(code, not(containsString("static {"))); assertThat(code, containsOne("this.n = z;")); assertThat(code, containsOne("this.n = 0;")); } }