package jadx.tests.integration.conditions;
import jadx.core.dex.nodes.ClassNode;
import jadx.tests.api.IntegrationTest;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
public class TestConditions5 extends IntegrationTest {
public static class TestCls {
public static void assertEquals(Object a1, Object a2) {
if (a1 == null) {
if (a2 != null) {
throw new AssertionError(a1 + " != " + a2);
}
} else if (!a1.equals(a2)) {
throw new AssertionError(a1 + " != " + a2);
}
}
public static void assertEquals2(Object a1, Object a2) {
if (a1 != null) {
if (!a1.equals(a2)) {
throw new AssertionError(a1 + " != " + a2);
}
} else {
if (a2 != null) {
throw new AssertionError(a1 + " != " + a2);
}
}
}
}
@Test
public void test() {
ClassNode cls = getClassNode(TestCls.class);
String code = cls.getCode().toString();
assertThat(code, containsString("if (a1 == null) {"));
assertThat(code, containsString("if (a2 != null) {"));
assertThat(code, containsString("throw new AssertionError(a1 + \" != \" + a2);"));
assertThat(code, not(containsString("if (a1.equals(a2)) {")));
assertThat(code, containsString("} else if (!a1.equals(a2)) {"));
}
}