package jadx.tests.integration.others; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import org.junit.Test; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.junit.Assert.assertThat; public class TestLoopInTry extends IntegrationTest { public static class TestCls { private static boolean b = true; public int test() { try { if (b) { throw new Exception(); } while (f()) { s(); } } catch (Exception e) { System.out.println("exception"); return 1; } return 0; } private static void s() { } private static boolean f() { return false; } } @Test public void test() { ClassNode cls = getClassNode(TestCls.class); String code = cls.getCode().toString(); assertThat(code, containsOne("try {")); assertThat(code, containsOne("if (b) {")); assertThat(code, containsOne("throw new Exception();")); assertThat(code, containsOne("while (f()) {")); assertThat(code, containsOne("s();")); assertThat(code, containsOne("} catch (Exception e) {")); assertThat(code, containsOne("return 1;")); assertThat(code, containsOne("return 0;")); } }