AsmAnalyzer { ClassReader findClass(String className, Map<String, ClassReader> zipClasses, Map<String, ClassReader> inOutFound) throws LogAbortException { ClassReader classReader = zipClasses.get(className); if (classReader == null) { throw new LogAbortException("Class %s not found by ASM in %s", className, mOsSourceJar); } inOutFound.put(className, classReader); return classReader; } AsmAnalyzer(Log log, List<String> osJarPath, AsmGenerator gen,
            String[] deriveFrom, String[] includeGlobs, Set<String> excludeClasses,
            String[] includeFileGlobs); void analyze();  }
@Test public void testFindClass() throws IOException, LogAbortException { Map<String, ClassReader> zipClasses = new TreeMap<String, ClassReader>(); Map<String, InputStream> filesFound = new TreeMap<String, InputStream>(); mAa.parseZip(mOsJarPath, zipClasses, filesFound); TreeMap<String, ClassReader> found = new TreeMap<String, ClassReader>(); ClassReader cr = mAa.findClass("mock_android.view.ViewGroup$LayoutParams", zipClasses, found); assertNotNull(cr); assertEquals("mock_android/view/ViewGroup$LayoutParams", cr.getClassName()); assertArrayEquals(new String[] { "mock_android.view.ViewGroup$LayoutParams" }, found.keySet().toArray()); assertArrayEquals(new ClassReader[] { cr }, found.values().toArray()); }