21
21
import java .util .Date ;
22
22
23
23
import org .codehaus .plexus .components .io .filemappers .FileMapper ;
24
- import org .junit .After ;
25
- import org .junit .Before ;
26
- import org .junit .Rule ;
27
- import org .junit .Test ;
28
- import org .junit .rules .ExpectedException ;
29
- import org .junit .rules .TemporaryFolder ;
30
-
31
- import static org .hamcrest .CoreMatchers .equalTo ;
32
- import static org .hamcrest .CoreMatchers .is ;
33
- import static org .hamcrest .MatcherAssert .assertThat ;
34
- import static org .hamcrest .Matchers .greaterThan ;
24
+ import org .junit .jupiter .api .AfterEach ;
25
+ import org .junit .jupiter .api .BeforeEach ;
26
+ import org .junit .jupiter .api .Test ;
27
+ import org .junit .jupiter .api .io .TempDir ;
28
+
29
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
30
+ import static org .junit .jupiter .api .Assertions .assertFalse ;
31
+ import static org .junit .jupiter .api .Assertions .assertThrows ;
32
+ import static org .junit .jupiter .api .Assertions .assertTrue ;
35
33
36
34
/**
37
35
* Unit test for {@link AbstractUnArchiver}
40
38
*/
41
39
public class AbstractUnArchiverTest
42
40
{
43
- @ Rule
44
- public ExpectedException thrown = ExpectedException .none ();
45
-
46
- @ Rule
47
- public TemporaryFolder temporaryFolder = new TemporaryFolder ();
48
-
49
41
private AbstractUnArchiver abstractUnArchiver ;
50
42
51
- @ Before
43
+ @ BeforeEach
52
44
public void setUp ()
53
45
{
54
46
this .abstractUnArchiver = new AbstractUnArchiver ()
@@ -69,129 +61,121 @@ protected void execute()
69
61
};
70
62
}
71
63
72
- @ After
64
+ @ AfterEach
73
65
public void tearDown ()
74
66
{
75
67
this .abstractUnArchiver = null ;
76
68
}
77
69
78
70
@ Test
79
- public void shouldThrowExceptionBecauseRewrittenPathIsOutOfDirectory ()
80
- throws ArchiverException , IOException
71
+ public void shouldThrowExceptionBecauseRewrittenPathIsOutOfDirectory ( @ TempDir File targetFolder )
72
+ throws ArchiverException
81
73
{
82
74
// given
83
- this .thrown .expectMessage ( "Entry is outside of the target directory (../PREFIX/ENTRYNAME.SUFFIX)" );
84
- final File targetFolder = temporaryFolder .newFolder ();
85
- final FileMapper [] fileMappers = new FileMapper [] { new FileMapper ()
86
- {
87
- @ Override
88
- public String getMappedFileName ( String pName )
89
- {
90
- return "../PREFIX/" + pName ;
91
- }
92
- }, new FileMapper ()
93
- {
94
- @ Override
95
- public String getMappedFileName ( String pName )
96
- {
97
- return pName + ".SUFFIX" ;
98
- }
99
- } };
75
+ final FileMapper [] fileMappers = new FileMapper [] { pName -> "../PREFIX/" + pName , pName -> pName + ".SUFFIX" };
100
76
101
77
// when
102
- this .abstractUnArchiver .extractFile ( null , targetFolder , null , "ENTRYNAME" , null , false , null , null ,
103
- fileMappers );
104
-
78
+ Exception exception = assertThrows ( ArchiverException .class , () ->
79
+ abstractUnArchiver .extractFile ( null , targetFolder , null , "ENTRYNAME" , null , false , null , null , fileMappers ) );
105
80
// then
106
81
// ArchiverException is thrown providing the rewritten path
82
+ assertEquals ( "Entry is outside of the target directory (../PREFIX/ENTRYNAME.SUFFIX)" , exception .getMessage () );
107
83
}
108
84
109
85
@ Test
110
- public void shouldExtractWhenFileOnDiskDoesNotExist () throws IOException
86
+ public void shouldExtractWhenFileOnDiskDoesNotExist ( @ TempDir File temporaryFolder ) throws IOException
111
87
{
112
88
// given
113
- File file = new File ( temporaryFolder . getRoot () , "whatever.txt" ); // does not create the file!
89
+ File file = new File ( temporaryFolder , "whatever.txt" ); // does not create the file!
114
90
String entryname = file .getName ();
115
91
Date entryDate = new Date ();
116
92
117
93
// when & then
118
- assertThat ( this . abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( true ) );
94
+ assertTrue ( abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
119
95
}
120
96
121
97
@ Test
122
- public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive () throws IOException
98
+ public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive ( @ TempDir File temporaryFolder ) throws IOException
123
99
{
124
100
// given
125
- File file = temporaryFolder .newFile ();
101
+ File file = new File ( temporaryFolder , "whatever.txt" );
102
+ file .createNewFile ();
126
103
file .setLastModified ( System .currentTimeMillis () );
127
104
String entryname = file .getName ();
128
105
Date entryDate = new Date ( 0 );
129
106
130
107
// when & then
131
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( false ) );
108
+ assertFalse ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
132
109
}
133
110
134
111
@ Test
135
- public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive_andWarnAboutDifferentCasing () throws IOException
112
+ public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive_andWarnAboutDifferentCasing ( @ TempDir File temporaryFolder )
113
+ throws IOException
136
114
{
137
115
// given
138
- File file = temporaryFolder .newFile ();
116
+ File file = new File ( temporaryFolder , "whatever.txt" );
117
+ file .createNewFile ();
139
118
file .setLastModified ( System .currentTimeMillis () );
140
119
String entryname = file .getName ().toUpperCase ();
141
120
Date entryDate = new Date ( 0 );
142
121
143
122
// when & then
144
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( false ) );
145
- assertThat ( this .abstractUnArchiver .casingMessageEmitted .get (), greaterThan ( 0 ) );
123
+ assertFalse ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
124
+ assertTrue ( this .abstractUnArchiver .casingMessageEmitted .get () > 0 );
146
125
}
147
126
148
127
@ Test
149
- public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDisk () throws IOException
128
+ public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDisk ( @ TempDir File temporaryFolder ) throws IOException
150
129
{
151
130
// given
152
- File file = temporaryFolder .newFile ();
131
+ File file = new File ( temporaryFolder , "whatever.txt" );
132
+ file .createNewFile ();
153
133
file .setLastModified ( 0 );
154
134
String entryname = file .getName ().toUpperCase ();
155
135
Date entryDate = new Date ( System .currentTimeMillis () );
156
136
157
137
// when & then
158
138
this .abstractUnArchiver .setOverwrite ( true );
159
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( true ) );
139
+ assertTrue ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
160
140
161
141
// when & then
162
142
this .abstractUnArchiver .setOverwrite ( false );
163
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( false ) );
143
+ assertFalse ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
164
144
}
165
145
166
146
@ Test
167
- public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDiskAndWarnAboutDifferentCasing () throws IOException
147
+ public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDiskAndWarnAboutDifferentCasing ( @ TempDir File temporaryFolder )
148
+ throws IOException
168
149
{
169
150
// given
170
- File file = temporaryFolder .newFile ();
151
+ File file = new File ( temporaryFolder , "whatever.txt" );
152
+ file .createNewFile ();
171
153
file .setLastModified ( 0 );
172
154
String entryname = file .getName ().toUpperCase ();
173
155
Date entryDate = new Date ( System .currentTimeMillis () );
174
156
175
157
// when & then
176
158
this .abstractUnArchiver .setOverwrite ( true );
177
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( true ) );
159
+ assertTrue ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
178
160
this .abstractUnArchiver .setOverwrite ( false );
179
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( false ) );
180
- assertThat ( this .abstractUnArchiver .casingMessageEmitted .get (), greaterThan ( 0 ) );
161
+ assertFalse ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
162
+ assertTrue ( this .abstractUnArchiver .casingMessageEmitted .get () > 0 );
181
163
}
182
164
183
165
@ Test
184
- public void shouldNotWarnAboutDifferentCasingForDirectoryEntries () throws IOException
166
+ public void shouldNotWarnAboutDifferentCasingForDirectoryEntries ( @ TempDir File temporaryFolder )
167
+ throws IOException
185
168
{
186
169
// given
187
- File file = temporaryFolder .newFolder ();
170
+ File file = new File ( temporaryFolder , "whatever.txt" );
171
+ file .createNewFile ();
188
172
file .setLastModified ( 0 );
189
173
String entryname = file .getName () + '/' ; // archive entries for directories end with a '/'
190
174
Date entryDate = new Date ();
191
175
192
176
// when & then
193
177
this .abstractUnArchiver .setOverwrite ( true );
194
- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( true ) );
195
- assertThat ( this .abstractUnArchiver .casingMessageEmitted .get (), equalTo ( 0 ) );
178
+ assertTrue ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
179
+ assertEquals ( 0 , this .abstractUnArchiver .casingMessageEmitted .get () );
196
180
}
197
181
}
0 commit comments