1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codehaus.plexus.archiver.tar;
17
18 import java.io.File;
19
20 import org.codehaus.plexus.archiver.Archiver;
21 import org.codehaus.plexus.archiver.TestSupport;
22 import org.codehaus.plexus.archiver.UnArchiver;
23 import org.codehaus.plexus.archiver.zstd.ZstdArchiver;
24 import org.codehaus.plexus.util.FileUtils;
25 import org.junit.jupiter.api.Test;
26
27 import static org.junit.jupiter.api.Assertions.assertEquals;
28 import static org.junit.jupiter.api.Assertions.assertFalse;
29 import static org.junit.jupiter.api.Assertions.assertNotNull;
30 import static org.junit.jupiter.api.Assertions.assertTrue;
31
32 class TarZstdUnArchiverTest extends TestSupport {
33
34 @Test
35 void testExtract() throws Exception {
36 TarArchiver tarArchiver = (TarArchiver) lookup(Archiver.class, "tar");
37 tarArchiver.setLongfile(TarLongFileMode.posix);
38
39 String fileName1 = "TarBZip2UnArchiverTest1.txt";
40 String fileName2 = "TarBZip2UnArchiverTest2.txt";
41 File file1InTar = getTestFile("target/output/" + fileName1);
42 File file2InTar = getTestFile("target/output/" + fileName2);
43 file1InTar.delete();
44 file2InTar.delete();
45
46 assertFalse(file1InTar.exists());
47 assertFalse(file2InTar.exists());
48
49 File testZstdFile = getTestFile("target/output/archive.tar.zst");
50 if (testZstdFile.exists()) {
51 FileUtils.fileDelete(testZstdFile.getPath());
52 }
53 assertFalse(testZstdFile.exists());
54
55 tarArchiver.addFile(getTestFile("src/test/resources/manifests/manifest1.mf"), fileName1);
56 tarArchiver.addFile(getTestFile("src/test/resources/manifests/manifest2.mf"), fileName2, 0664);
57 tarArchiver.setDestFile(getTestFile("target/output/archive.tar"));
58 tarArchiver.createArchive();
59
60 ZstdArchiver zstdArchiver = (ZstdArchiver) lookup(Archiver.class, "zst");
61
62 zstdArchiver.setDestFile(testZstdFile);
63 zstdArchiver.addFile(getTestFile("target/output/archive.tar"), "dontcare");
64 zstdArchiver.createArchive();
65
66 assertTrue(testZstdFile.exists());
67
68 TarZstdUnArchiver tarZstdUnArchiver = (TarZstdUnArchiver) lookup(UnArchiver.class, "tar.zst");
69
70 tarZstdUnArchiver.setDestDirectory(getTestFile("target/output"));
71 tarZstdUnArchiver.setSourceFile(testZstdFile);
72 tarZstdUnArchiver.extract();
73
74 assertTrue(file1InTar.exists());
75 assertTrue(file2InTar.exists());
76
77 assertEquals(testZstdFile, tarZstdUnArchiver.getSourceFile());
78 }
79
80 @Test
81 void testLookup() throws Exception {
82 assertNotNull(lookup(UnArchiver.class, "tar.zst"));
83 }
84 }