@Test public void testMetaList() throws IOException { File outJar = tempDir.newFile("test.jar"); ZipOutputStream zipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(outJar))); Map<String, String> fileToClassName = ImmutableMap.of( "com/facebook/foo.class", "com.facebook.foo", "bar.class", "bar"); try { for (String entry : fileToClassName.keySet()) { zipOut.putNextEntry(new ZipEntry(entry)); zipOut.write(new byte[] {0}); } } finally { zipOut.close(); } StringWriter stringWriter = new StringWriter(); BufferedWriter writer = new BufferedWriter(stringWriter); try { SplitZipStep.writeMetaList(writer, ImmutableList.of(outJar), DexStore.JAR); } finally { writer.close(); } List<String> lines = CharStreams.readLines(new StringReader(stringWriter.toString())); assertEquals(1, lines.size()); String line = Iterables.getFirst(lines, null); String[] data = line.split(" "); assertEquals(3, data.length); // Note that we cannot test data[1] (the hash) because zip files change their hash each // time they are written due to timestamps written into the file. assertEquals("test.dex.jar", data[0]); assertTrue( String.format("Unexpected class: %s", data[2]), fileToClassName.values().contains(data[2])); }