1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.compress.archivers.zip;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import java.io.ByteArrayInputStream;
25 import java.io.File;
26 import java.io.IOException;
27 import java.io.InputStream;
28 import java.util.concurrent.ExecutionException;
29 import java.util.zip.ZipEntry;
30
31 import org.apache.commons.compress.AbstractTempDirTest;
32 import org.apache.commons.compress.parallel.InputStreamSupplier;
33 import org.apache.commons.compress.utils.IOUtils;
34 import org.junit.jupiter.api.Test;
35
36 class ScatterSampleTest extends AbstractTempDirTest {
37
38 private void checkFile(final File result) throws IOException {
39 try (ZipFile zipFile = ZipFile.builder().setFile(result).get()) {
40 final ZipArchiveEntry archiveEntry1 = zipFile.getEntries().nextElement();
41 assertEquals("test1.xml", archiveEntry1.getName());
42 try (InputStream inputStream = zipFile.getInputStream(archiveEntry1)) {
43 final byte[] b = new byte[6];
44 final int i = IOUtils.readFully(inputStream, b);
45 assertEquals(5, i);
46 assertEquals('H', b[0]);
47 assertEquals('o', b[4]);
48 }
49 }
50 assertTrue(result.delete());
51 }
52
53 private void createFile(final File result) throws IOException, ExecutionException, InterruptedException {
54 final ScatterSample scatterSample = new ScatterSample(this);
55 final ZipArchiveEntry archiveEntry = new ZipArchiveEntry("test1.xml");
56 archiveEntry.setMethod(ZipEntry.DEFLATED);
57 final InputStreamSupplier supp = () -> new ByteArrayInputStream("Hello".getBytes());
58
59 scatterSample.addEntry(archiveEntry, supp);
60 try (ZipArchiveOutputStream zipArchiveOutputStream = new ZipArchiveOutputStream(result)) {
61 scatterSample.writeTo(zipArchiveOutputStream);
62 }
63 }
64
65 @Test
66 void testSample() throws Exception {
67 final File result = createTempFile("testSample", "fe");
68 createFile(result);
69 checkFile(result);
70 }
71 }