2121import java .util .Date ;
2222
2323import 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 ;
3533
3634/**
3735 * Unit test for {@link AbstractUnArchiver}
4038 */
4139public class AbstractUnArchiverTest
4240{
43- @ Rule
44- public ExpectedException thrown = ExpectedException .none ();
45-
46- @ Rule
47- public TemporaryFolder temporaryFolder = new TemporaryFolder ();
48-
4941 private AbstractUnArchiver abstractUnArchiver ;
5042
51- @ Before
43+ @ BeforeEach
5244 public void setUp ()
5345 {
5446 this .abstractUnArchiver = new AbstractUnArchiver ()
@@ -69,129 +61,121 @@ protected void execute()
6961 };
7062 }
7163
72- @ After
64+ @ AfterEach
7365 public void tearDown ()
7466 {
7567 this .abstractUnArchiver = null ;
7668 }
7769
7870 @ Test
79- public void shouldThrowExceptionBecauseRewrittenPathIsOutOfDirectory ()
80- throws ArchiverException , IOException
71+ public void shouldThrowExceptionBecauseRewrittenPathIsOutOfDirectory ( @ TempDir File targetFolder )
72+ throws ArchiverException
8173 {
8274 // 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" };
10076
10177 // 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 ) );
10580 // then
10681 // ArchiverException is thrown providing the rewritten path
82+ assertEquals ( "Entry is outside of the target directory (../PREFIX/ENTRYNAME.SUFFIX)" , exception .getMessage () );
10783 }
10884
10985 @ Test
110- public void shouldExtractWhenFileOnDiskDoesNotExist () throws IOException
86+ public void shouldExtractWhenFileOnDiskDoesNotExist ( @ TempDir File temporaryFolder ) throws IOException
11187 {
11288 // 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!
11490 String entryname = file .getName ();
11591 Date entryDate = new Date ();
11692
11793 // when & then
118- assertThat ( this . abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( true ) );
94+ assertTrue ( abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
11995 }
12096
12197 @ Test
122- public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive () throws IOException
98+ public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive ( @ TempDir File temporaryFolder ) throws IOException
12399 {
124100 // given
125- File file = temporaryFolder .newFile ();
101+ File file = new File ( temporaryFolder , "whatever.txt" );
102+ file .createNewFile ();
126103 file .setLastModified ( System .currentTimeMillis () );
127104 String entryname = file .getName ();
128105 Date entryDate = new Date ( 0 );
129106
130107 // when & then
131- assertThat ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder . getRoot () , file , entryname , entryDate ), is ( false ) );
108+ assertFalse ( this .abstractUnArchiver .shouldExtractEntry ( temporaryFolder , file , entryname , entryDate ) );
132109 }
133110
134111 @ Test
135- public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive_andWarnAboutDifferentCasing () throws IOException
112+ public void shouldNotExtractWhenFileOnDiskIsNewerThanEntryInArchive_andWarnAboutDifferentCasing ( @ TempDir File temporaryFolder )
113+ throws IOException
136114 {
137115 // given
138- File file = temporaryFolder .newFile ();
116+ File file = new File ( temporaryFolder , "whatever.txt" );
117+ file .createNewFile ();
139118 file .setLastModified ( System .currentTimeMillis () );
140119 String entryname = file .getName ().toUpperCase ();
141120 Date entryDate = new Date ( 0 );
142121
143122 // 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 );
146125 }
147126
148127 @ Test
149- public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDisk () throws IOException
128+ public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDisk ( @ TempDir File temporaryFolder ) throws IOException
150129 {
151130 // given
152- File file = temporaryFolder .newFile ();
131+ File file = new File ( temporaryFolder , "whatever.txt" );
132+ file .createNewFile ();
153133 file .setLastModified ( 0 );
154134 String entryname = file .getName ().toUpperCase ();
155135 Date entryDate = new Date ( System .currentTimeMillis () );
156136
157137 // when & then
158138 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 ) );
160140
161141 // when & then
162142 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 ) );
164144 }
165145
166146 @ Test
167- public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDiskAndWarnAboutDifferentCasing () throws IOException
147+ public void shouldExtractWhenEntryInArchiveIsNewerThanFileOnDiskAndWarnAboutDifferentCasing ( @ TempDir File temporaryFolder )
148+ throws IOException
168149 {
169150 // given
170- File file = temporaryFolder .newFile ();
151+ File file = new File ( temporaryFolder , "whatever.txt" );
152+ file .createNewFile ();
171153 file .setLastModified ( 0 );
172154 String entryname = file .getName ().toUpperCase ();
173155 Date entryDate = new Date ( System .currentTimeMillis () );
174156
175157 // when & then
176158 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 ) );
178160 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 );
181163 }
182164
183165 @ Test
184- public void shouldNotWarnAboutDifferentCasingForDirectoryEntries () throws IOException
166+ public void shouldNotWarnAboutDifferentCasingForDirectoryEntries ( @ TempDir File temporaryFolder )
167+ throws IOException
185168 {
186169 // given
187- File file = temporaryFolder .newFolder ();
170+ File file = new File ( temporaryFolder , "whatever.txt" );
171+ file .createNewFile ();
188172 file .setLastModified ( 0 );
189173 String entryname = file .getName () + '/' ; // archive entries for directories end with a '/'
190174 Date entryDate = new Date ();
191175
192176 // when & then
193177 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 () );
196180 }
197181}
0 commit comments