Package jadx.gui.treemodel

Source Code of jadx.gui.treemodel.JRootTest

package jadx.gui.treemodel;

import jadx.api.Factory;
import jadx.api.IJadxArgs;
import jadx.api.JadxDecompiler;
import jadx.api.JavaClass;
import jadx.api.JavaPackage;
import jadx.core.dex.nodes.ClassNode;
import jadx.gui.JadxWrapper;

import java.util.Arrays;
import java.util.List;

import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;

public class JRootTest {

  private JRoot root;
  private JadxDecompiler decompiler;

  @Before
  public void init() {
    root = new JRoot(mock(JadxWrapper.class));
    decompiler = new JadxDecompiler(mock(IJadxArgs.class));
  }

  @Test
  public void testHierarchyPackages() {
    String pkgName = "a.b.c.d.e";

    List<JavaPackage> packages = Arrays.asList(newPkg(pkgName));
    List<JPackage> out = root.getHierarchyPackages(packages);

    assertEquals(out.size(), 1);
    JPackage jpkg = out.get(0);
    assertEquals(jpkg.getName(), pkgName);
    assertEquals(jpkg.getClasses().size(), 1);
  }

  @Test
  public void testHierarchyPackages2() {
    List<JavaPackage> packages = Arrays.asList(
        newPkg("a.b"),
        newPkg("a.c"),
        newPkg("a.d")
    );
    List<JPackage> out = root.getHierarchyPackages(packages);

    assertEquals(out.size(), 1);
    JPackage jpkg = out.get(0);
    assertEquals(jpkg.getName(), "a");
    assertEquals(jpkg.getClasses().size(), 0);
    assertEquals(jpkg.getInnerPackages().size(), 3);
  }

  @Test
  public void testHierarchyPackages3() {
    List<JavaPackage> packages = Arrays.asList(
        newPkg("a.b.p1"),
        newPkg("a.b.p2"),
        newPkg("a.b.p3")
    );
    List<JPackage> out = root.getHierarchyPackages(packages);

    assertEquals(out.size(), 1);
    JPackage jpkg = out.get(0);
    assertEquals(jpkg.getName(), "a.b");
    assertEquals(jpkg.getClasses().size(), 0);
    assertEquals(jpkg.getInnerPackages().size(), 3);
  }

  @Test
  public void testHierarchyPackages4() {
    List<JavaPackage> packages = Arrays.asList(
        newPkg("a.p1"),
        newPkg("a.b.c.p2"),
        newPkg("a.b.c.p3"),
        newPkg("d.e"),
        newPkg("d.f.a")
    );
    List<JPackage> out = root.getHierarchyPackages(packages);

    assertEquals(out.size(), 2);
    assertEquals(out.get(0).getName(), "a");
    assertEquals(out.get(0).getInnerPackages().size(), 2);
    assertEquals(out.get(1).getName(), "d");
    assertEquals(out.get(1).getInnerPackages().size(), 2);
  }

  private JavaPackage newPkg(String name) {
    return Factory.newPackage(name, Arrays.asList(newClass()));
  }

  private JavaClass newClass() {
    return Factory.newClass(decompiler, mock(ClassNode.class));
  }

}
TOP

Related Classes of jadx.gui.treemodel.JRootTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.