summaryrefslogtreecommitdiff
path: root/src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java')
-rw-r--r--src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java b/src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java
new file mode 100644
index 00000000..ae5d6d2c
--- /dev/null
+++ b/src/test/java/cuchaz/enigma/PackageVisibilityIndexTest.java
@@ -0,0 +1,55 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 *
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma;
13
14import cuchaz.enigma.analysis.ParsedJar;
15import cuchaz.enigma.analysis.index.JarIndex;
16import cuchaz.enigma.analysis.index.PackageVisibilityIndex;
17import cuchaz.enigma.translation.representation.entry.ClassEntry;
18import org.junit.Test;
19
20import java.util.jar.JarFile;
21
22import static cuchaz.enigma.TestEntryFactory.newClass;
23import static org.hamcrest.MatcherAssert.assertThat;
24import static org.hamcrest.Matchers.contains;
25import static org.hamcrest.Matchers.containsInAnyOrder;
26
27public class PackageVisibilityIndexTest {
28
29 private static final ClassEntry KEEP = newClass("cuchaz/enigma/inputs/Keep");
30 private static final ClassEntry BASE = newClass("a");
31 private static final ClassEntry SAME_PACKAGE_CHILD = newClass("b");
32 private static final ClassEntry SAME_PACKAGE_CHILD_INNER = newClass("b$a");
33 private static final ClassEntry OTHER_PACKAGE_CHILD = newClass("c");
34 private static final ClassEntry OTHER_PACKAGE_CHILD_INNER = newClass("c$a");
35 private final JarIndex jarIndex;
36
37 public PackageVisibilityIndexTest() throws Exception {
38 jarIndex = JarIndex.empty();
39 ParsedJar jar = new ParsedJar(new JarFile("build/test-obf/packageAccess.jar"));
40 jarIndex.indexJar(jar, s -> {
41 });
42 }
43
44 @Test
45 public void test() {
46 PackageVisibilityIndex visibilityIndex = jarIndex.getPackageVisibilityIndex();
47 assertThat(visibilityIndex.getPartition(BASE), containsInAnyOrder(BASE, SAME_PACKAGE_CHILD, SAME_PACKAGE_CHILD_INNER));
48 System.out.println(visibilityIndex.getPartitions());
49 assertThat(visibilityIndex.getPartitions(), containsInAnyOrder(
50 containsInAnyOrder(BASE, SAME_PACKAGE_CHILD, SAME_PACKAGE_CHILD_INNER),
51 containsInAnyOrder(OTHER_PACKAGE_CHILD, OTHER_PACKAGE_CHILD_INNER),
52 contains(KEEP)
53 ));
54 }
55}