1 package org.codehaus.plexus.archiver;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 import org.junit.jupiter.api.BeforeEach;
7 import org.junit.jupiter.api.Test;
8
9 import static org.junit.jupiter.api.Assertions.assertEquals;
10
11 class AbstractArchiverTest {
12
13 private AbstractArchiver archiver;
14
15 @BeforeEach
16 void setUp() throws Exception {
17 this.archiver = new AbstractArchiver() {
18
19 @Override
20 protected String getArchiveType() {
21 throw new UnsupportedOperationException();
22 }
23
24 @Override
25 protected void execute() throws ArchiverException, IOException {
26 throw new UnsupportedOperationException();
27 }
28
29 @Override
30 protected void close() throws IOException {
31 throw new UnsupportedOperationException();
32 }
33 };
34 }
35
36 @Test
37 void testModesAndOverridesAreUnsetByDefault() {
38 assertEquals(-1, archiver.getDefaultFileMode());
39 assertEquals(-1, archiver.getOverrideFileMode());
40
41 assertEquals(Archiver.DEFAULT_DIR_MODE, archiver.getDefaultDirectoryMode());
42 assertEquals(-1, archiver.getOverrideDirectoryMode());
43 }
44
45 @Test
46 void testWhenUnsetModeUsesDefault() {
47 assertEquals(Archiver.DEFAULT_FILE_MODE, archiver.getFileMode());
48 assertEquals(Archiver.DEFAULT_DIR_MODE, archiver.getDirectoryMode());
49 }
50
51 @Test
52 void testSetModeIsUsedWithFlagsForType() {
53 archiver.setFileMode(0400);
54 assertEquals(0100400, archiver.getFileMode());
55
56 archiver.setDirectoryMode(0600);
57 assertEquals(040600, archiver.getDirectoryMode());
58 }
59
60 @Test
61 void testSetDefaultIncludesFlagsForType() {
62 archiver.setDefaultFileMode(0400);
63 assertEquals(0100400, archiver.getDefaultFileMode());
64
65 archiver.setDefaultDirectoryMode(0600);
66 assertEquals(040600, archiver.getDefaultDirectoryMode());
67 }
68
69 @Test
70 void testDefaultIsUsedWhenModeIsUnset() {
71 archiver.setDefaultFileMode(0400);
72 assertEquals(0100400, archiver.getFileMode());
73
74 archiver.setDefaultDirectoryMode(0600);
75 assertEquals(040600, archiver.getDirectoryMode());
76 }
77
78 @Test
79 void testOverridesCanBeReset() {
80 archiver.setFileMode(0400);
81 archiver.setFileMode(-1);
82 assertEquals(-1, archiver.getOverrideFileMode());
83
84 archiver.setDirectoryMode(0600);
85 archiver.setDirectoryMode(-1);
86 assertEquals(-1, archiver.getOverrideDirectoryMode());
87 }
88
89 @Test
90 void testSetDestFileInTheWorkingDir() {
91 archiver.setDestFile(new File("archive"));
92 }
93 }