package jadx.tests.integration.trycatch; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.junit.Test; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.junit.Assert.assertThat; public class TestTryCatchFinally4 extends IntegrationTest { public static class TestCls { public void test() throws IOException { File file = File.createTempFile("test", "txt"); OutputStream outputStream = new FileOutputStream(file); try { outputStream.write(1); } finally { try { outputStream.close(); file.delete(); } catch (IOException e) { } } } } @Test public void test() { ClassNode cls = getClassNode(TestCls.class); String code = cls.getCode().toString(); assertThat(code, containsOne("File file = File.createTempFile(\"test\", \"txt\");")); assertThat(code, containsOne("OutputStream outputStream = new FileOutputStream(file);")); assertThat(code, containsOne("outputStream.write(1);")); assertThat(code, containsOne("} finally {")); assertThat(code, containsOne("outputStream.close();")); assertThat(code, containsOne("} catch (IOException e) {")); } }