### Question:
PluginZipFileProcessor { public void processManifest( ZipOutputStream zipOutputStream ) throws IOException { Manifest manifest = null; String manifestFolder = JarFile.MANIFEST_NAME.split( "/" )[ 0 ] + "/"; ZipEntry manifestFolderEntry = new ZipEntry( manifestFolder ); zipOutputStream.putNextEntry( manifestFolderEntry ); zipOutputStream.closeEntry(); ZipEntry manifestEntry = new ZipEntry( JarFile.MANIFEST_NAME ); zipOutputStream.putNextEntry( manifestEntry ); new ManifestUpdaterImpl().write( manifest, zipOutputStream, name, symbolicName, version ); zipOutputStream.closeEntry(); zipOutputStream.flush(); zipOutputStream.close(); } PluginZipFileProcessor( List<PluginFileHandler> pluginFileHandlers, boolean isPluginProcessedBefore,
                                 String name, String symbolicName,
                                 String version ); Future<Void> processBackground( ExecutorService executorService,
                                         final Supplier<ZipInputStream> zipInputStreamProvider,
                                         final ZipOutputStream zipOutputStream,
                                         final ExceptionSettable<Throwable> exceptionSettable ); void process( Supplier<ZipInputStream> zipInputStreamProvider, ZipOutputStream zipOutputStream ); void processManifest( ZipOutputStream zipOutputStream ); static final String BLUEPRINT; static final String PLUGIN_SPRING_XML_FILENAME; }### Answer:
@Test public void testProcessManifest() throws IOException { List<PluginFileHandler> pluginFileHandlers = new ArrayList<PluginFileHandler>( Arrays.asList( new PluginXmlStaticPathsHandler() ) ); ZipOutputStream zipOutputStream = mock( ZipOutputStream.class ); PluginZipFileProcessor pluginZipFileProcessor = new PluginZipFileProcessor( pluginFileHandlers, true, "test", "test-symbolic", "version" ); pluginZipFileProcessor.processManifest( zipOutputStream ); verify( zipOutputStream, times( 1 ) ) .putNextEntry( argThat( new ZipEntryMatcher( new ZipEntry( JarFile.MANIFEST_NAME ) ) ) ); }