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.xz.XZArchiver;
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
33
34
35
36 class TarXzUnArchiverTest extends TestSupport {
37
38 @Test
39 void testExtract() throws Exception {
40 TarArchiver tarArchiver = (TarArchiver) lookup(Archiver.class, "tar");
41 tarArchiver.setLongfile(TarLongFileMode.posix);
42
43 String fileName1 = "TarBZip2UnArchiverTest1.txt";
44 String fileName2 = "TarBZip2UnArchiverTest2.txt";
45 File file1InTar = getTestFile("target/output/" + fileName1);
46 File file2InTar = getTestFile("target/output/" + fileName2);
47 file1InTar.delete();
48 file2InTar.delete();
49
50 assertFalse(file1InTar.exists());
51 assertFalse(file2InTar.exists());
52
53 File testXZFile = getTestFile("target/output/archive.tar.xz");
54 if (testXZFile.exists()) {
55 FileUtils.fileDelete(testXZFile.getPath());
56 }
57 assertFalse(testXZFile.exists());
58
59 tarArchiver.addFile(getTestFile("src/test/resources/manifests/manifest1.mf"), fileName1);
60 tarArchiver.addFile(getTestFile("src/test/resources/manifests/manifest2.mf"), fileName2, 0664);
61 tarArchiver.setDestFile(getTestFile("target/output/archive.tar"));
62 tarArchiver.createArchive();
63
64 XZArchiver xzArchiver = (XZArchiver) lookup(Archiver.class, "xz");
65
66 xzArchiver.setDestFile(testXZFile);
67 xzArchiver.addFile(getTestFile("target/output/archive.tar"), "dontcare");
68 xzArchiver.createArchive();
69
70 assertTrue(testXZFile.exists());
71
72 TarXZUnArchiver tarXZUnArchiver = (TarXZUnArchiver) lookup(UnArchiver.class, "tar.xz");
73
74 tarXZUnArchiver.setDestDirectory(getTestFile("target/output"));
75 tarXZUnArchiver.setSourceFile(testXZFile);
76 tarXZUnArchiver.extract();
77
78 assertTrue(file1InTar.exists());
79 assertTrue(file2InTar.exists());
80
81 assertEquals(testXZFile, tarXZUnArchiver.getSourceFile());
82 }
83
84 @Test
85 void testLookup() throws Exception {
86 assertNotNull(lookup(UnArchiver.class, "tar.xz"));
87 }
88 }