1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.compress.compressors.lz4;
20
21 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
22
23 import java.io.InputStream;
24 import java.io.OutputStream;
25 import java.nio.file.Files;
26 import java.nio.file.Path;
27
28 import org.apache.commons.compress.AbstractTest;
29 import org.apache.commons.compress.compressors.CompressorOutputStream;
30 import org.apache.commons.compress.compressors.CompressorStreamFactory;
31 import org.apache.commons.io.IOUtils;
32 import org.junit.jupiter.api.Test;
33
34 class FactoryTest extends AbstractTest {
35
36 private void roundtripViaFactory(final String format) throws Exception {
37 final Path input = getPath("bla.tar");
38 final Path outputSz = getTempDirFile().toPath().resolve(input.getFileName() + "." + format + ".lz4");
39 try (OutputStream os = Files.newOutputStream(outputSz);
40 CompressorOutputStream<?> los = new CompressorStreamFactory().createCompressorOutputStream(format, os)) {
41 los.write(input);
42 }
43 try (InputStream is = Files.newInputStream(input);
44 InputStream sis = new CompressorStreamFactory().createCompressorInputStream(format, Files.newInputStream(outputSz))) {
45 final byte[] expected = IOUtils.toByteArray(is);
46 final byte[] actual = IOUtils.toByteArray(sis);
47 assertArrayEquals(expected, actual);
48 }
49 }
50
51 @Test
52 void testBlockRoundtripViaFactory() throws Exception {
53 roundtripViaFactory(CompressorStreamFactory.getLZ4Block());
54 }
55
56 @Test
57 void testFrameRoundtripViaFactory() throws Exception {
58 roundtripViaFactory(CompressorStreamFactory.getLZ4Framed());
59 }
60 }