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.assertFalse;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import java.io.ByteArrayOutputStream;
26 import java.io.IOException;
27 import java.nio.charset.Charset;
28 import java.nio.charset.StandardCharsets;
29 import java.util.zip.Deflater;
30 import java.util.zip.ZipEntry;
31
32 import org.apache.commons.compress.AbstractTempDirTest;
33 import org.junit.jupiter.api.Test;
34
35
36
37
38 class ZipArchiveOutputStreamTest extends AbstractTempDirTest {
39
40 @Test
41 void testFileBasics() throws IOException {
42 final ZipArchiveOutputStream ref;
43 try (ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(createTempFile())) {
44 ref = outputStream;
45 assertTrue(outputStream.isSeekable());
46 }
47 assertTrue(ref.isClosed());
48 }
49
50 @Test
51 void testOptionDefaults() throws IOException {
52 final ZipArchiveOutputStream ref;
53 try (ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(createTempFile())) {
54 ref = outputStream;
55 assertTrue(outputStream.isSeekable());
56 outputStream.setComment("");
57 outputStream.setLevel(Deflater.DEFAULT_COMPRESSION);
58 outputStream.setMethod(ZipEntry.DEFLATED);
59 outputStream.setFallbackToUTF8(false);
60 }
61 assertTrue(ref.isClosed());
62 }
63
64 @Test
65 void testOutputStreamBasics() throws IOException {
66 try (ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(new ByteArrayOutputStream())) {
67 assertFalse(outputStream.isSeekable());
68 }
69 }
70
71 @Test
72 void testSetEncoding() throws IOException {
73 try (ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(createTempFile())) {
74 outputStream.setEncoding(StandardCharsets.UTF_8.name());
75 assertEquals(StandardCharsets.UTF_8.name(), outputStream.getEncoding());
76 outputStream.setEncoding(null);
77 assertEquals(Charset.defaultCharset().name(), outputStream.getEncoding());
78 }
79 }
80 }