@Test
  public void testUnshrinkEntry() throws Exception {
    ZipArchiveInputStream in =
        new ZipArchiveInputStream(new FileInputStream(getFile("SHRUNK.ZIP")));

    ZipArchiveEntry entry = in.getNextZipEntry();
    assertEquals("method", ZipMethod.UNSHRINKING.getCode(), entry.getMethod());
    assertTrue(in.canReadEntryData(entry));

    FileInputStream original = new FileInputStream(getFile("test1.xml"));
    try {
      assertArrayEquals(IOUtils.toByteArray(original), IOUtils.toByteArray(in));
    } finally {
      original.close();
    }

    entry = in.getNextZipEntry();
    assertEquals("method", ZipMethod.UNSHRINKING.getCode(), entry.getMethod());
    assertTrue(in.canReadEntryData(entry));

    original = new FileInputStream(getFile("test2.xml"));
    try {
      assertArrayEquals(IOUtils.toByteArray(original), IOUtils.toByteArray(in));
    } finally {
      original.close();
    }
  }
 /**
  * Whether this stream is able to write the given entry.
  *
  * <p>May return false if it is set up to use encryption or a compression method that hasn't been
  * implemented yet.
  *
  * @since 1.1
  */
 @Override
 public boolean canWriteEntryData(ArchiveEntry ae) {
   if (ae instanceof ZipArchiveEntry) {
     ZipArchiveEntry zae = (ZipArchiveEntry) ae;
     return zae.getMethod() != ZipMethod.IMPLODING.getCode()
         && zae.getMethod() != ZipMethod.UNSHRINKING.getCode()
         && ZipUtil.canHandleEntryData(zae);
   }
   return false;
 }