Index: impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java =================================================================== --- impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java (revision 3945) +++ impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java Sun Jan 24 21:44:36 CET 2010 @@ -18,6 +18,7 @@ import java.io.File; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.util.Arrays; @@ -33,6 +34,7 @@ import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.Archives; import org.jboss.shrinkwrap.api.exporter.ZipExporter; +import org.jboss.shrinkwrap.api.importer.ArchiveImportException; import org.jboss.shrinkwrap.api.importer.ZipImporter; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.impl.base.asset.ClassLoaderAsset; @@ -136,7 +138,21 @@ archive, SecurityActions.getThreadContextClassLoader().getResource(EXISTING_ZIP_RESOURCE).toURI()); } - + + @Test(expected = ArchiveImportException.class) + public void shouldThrowExceptionOnErrorInImportFromStream() throws Exception + { + ZipInputStream stream = new ZipInputStream(new InputStream() { + @Override + public int read() throws IOException { + throw new IOException("Mock exception"); + } + }); + Archives.create("test.jar", ZipImporter.class) + .importZip(stream) + .as(JavaArchive.class); + } + /** * Compare the content of the original file and what was imported. *