/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.commons.lang; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Random; import java.util.function.Consumer; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; public class ZipUtilsTest { private File zipFile; @BeforeMethod public void setUp() throws IOException { zipFile = File.createTempFile("test", "zip"); zipFile.deleteOnExit(); byte[] testData = new byte[2048]; Random random = new Random(); random.nextBytes(testData); try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) { ZipEntry entry = new ZipEntry("test"); entry.setSize(testData.length); zos.putNextEntry(entry); zos.write(testData); zos.closeEntry(); zos.close(); } } @Test public void shouldBeAbleToDetectZipFile() throws IOException { Assert.assertTrue(ZipUtils.isZipFile(zipFile)); } @Test public void testGetResources() throws Exception { URL testJar = ZipUtilsTest.class.getResource("/che/che.jar"); @SuppressWarnings("unchecked") Consumer<InputStream> consumer = mock(Consumer.class); ZipUtils.getResources(new ZipFile(testJar.getFile()), Pattern.compile(".*[//]?codenvy/[^//]+[.]json"), consumer); verify(consumer, times(2)).accept(any(InputStream.class)); } }