/**
  * Copia los archivos a utilizar por una aplicación, en el directorio de trabajos de tdderive,
  * comprime tales archivos y los divide dejando los resultados de ambas acciones en sus
  * directorios correspondientes.
  * <li>Registra los archivos de la tarea.
  * <li>Si se debe exportar se crea un directorio cuyo nombre será
  *     <tt>"tarea"+MilisegundosDesde1ºEnero1970</tt>.
  * <li>Si se exporta, se exportan los archivos bloque por bloque, asi que aquí se indica el nombre
  *     de cada bloque.
  * <li>Si no se exporta, entonces no se indican bloques, pero se indica que cada archivo está
  *     local.
  *
  * @throws ADMINExcepcion Si error.
  * @throws OIExcepcion Si error.
  */
 protected void ubicaArchivos() throws OIExcepcion, ADMINGLOExcepcion {
   int i = 0, idx = 0;
   String cNombreArchivo, cNombreComprimido, cBloque;
   tdutils.SplitInfo[] acBloques;
   PERSCoordinacion.Archivos archivoI, archivoII = null;
   File fArchivo = null;
   Iterator itr;
   Map mpArchivosACargar = new TreeMap(String.CASE_INSENSITIVE_ORDER);
   mpArchivosACargar.putAll(mpArchivos);
   mpArchivos.clear();
   itr = mpArchivosACargar.values().iterator();
   while (itr.hasNext()) {
     archivoI = (PERSCoordinacion.Archivos) itr.next();
     cNombreArchivo = archivoI.getRutaOriginal();
     fArchivo = new File(cNombreArchivo);
     // el archivo o directorio sí existe
     // se comprime en directorio de comprimidos
     cNombreComprimido = tarea.getComprimidosDir() + "/" + archivoI.getNombre();
     try {
       Zip.zipFile(cNombreComprimido, cNombreArchivo);
     } catch (IOException ex) {
       throw new ADMINGLOExcepcion("No se pudo comprimir archivo.", ex);
     }
     archivoII = new PERSCoordinacion.Archivos(this.info);
     archivoII.setNombre(archivoI.getNombre());
     archivoII.setInfoArchivo(archivoI.getInfoArchivo());
     archivoII.setSiLocal(false);
     archivoII.setEstadoArchivo(ADMINAPPIArchivos.ARCHIVO_PRESENTE);
     // prepara lista de archivos a exportar
     mpArchivos.put(archivoII.getNombre(), archivoII);
   }
 }
 @Test
 public void testZippingASingleFileWillThrowIfInputIsNotAFile() throws IOException {
   try {
     zip.zipFile(inputDir.getParentFile(), inputDir);
     fail("Should have failed");
   } catch (IllegalArgumentException ignored) {
   }
 }
  @Test
  public void testCanZipASingleFile() throws IOException {
    File input = new File(inputDir, "foo.txt");
    File unwanted = new File(inputDir, "nay.txt");
    touch(input);
    touch(unwanted);

    String zipped = zip.zipFile(inputDir, input);

    zip.unzip(zipped, outputDir);
    File unzipped = new File(outputDir, "foo.txt");
    File notThere = new File(outputDir, "nay.txt");

    assertTrue(unzipped.exists());
    assertFalse(notThere.exists());
  }