33import com .github .dockerjava .core .util .CompressArchiveUtil ;
44import org .apache .commons .compress .archivers .tar .TarArchiveEntry ;
55import org .apache .commons .compress .archivers .tar .TarArchiveInputStream ;
6- import org .apache .commons .io .FileUtils ;
76import org .apache .commons .io .IOUtils ;
7+ import org .junit .Rule ;
88import org .junit .Test ;
9+ import org .junit .rules .TemporaryFolder ;
910
1011import java .io .BufferedInputStream ;
1112import java .io .File ;
2223
2324public class CompressArchiveUtilTest {
2425
26+ @ Rule
27+ public TemporaryFolder tempFolder = new TemporaryFolder ();
28+
2529 @ Test
2630 public void testExecutableFlagIsPreserved () throws Exception {
27- File executableFile = createExecutableFile ();
28- File archive = CompressArchiveUtil .archiveTARFiles (executableFile .getParentFile (), asList (executableFile ),
31+ File executableFile = tempFolder .newFile ("executableFile.sh" );
32+ executableFile .setExecutable (true );
33+ assertThat (executableFile .canExecute (), is (true ));
34+
35+ File archive = CompressArchiveUtil .archiveTARFiles (tempFolder .getRoot (), asList (executableFile ),
2936 "archive" );
3037 File expectedFile = extractFileByName (archive , "executableFile.sh" , "executableFile.sh.result" );
3138
3239 assertThat ("should be executable" , expectedFile .canExecute ());
33- expectedFile .delete ();
34- archive .delete ();
35- }
36-
37- private File createExecutableFile () throws IOException {
38- File baseDir = new File (FileUtils .getTempDirectoryPath ());
39- File executableFile = new File (baseDir , "executableFile.sh" );
40- executableFile .createNewFile ();
41- executableFile .setExecutable (true );
42- assertThat (executableFile .canExecute (), is (true ));
43- return executableFile ;
4440 }
4541
4642 private File extractFileByName (File archive , String filenameToExtract , String outputName ) throws IOException {
47- File baseDir = new File (FileUtils .getTempDirectoryPath ());
48- File expectedFile = new File (baseDir , outputName );
43+ File expectedFile = new File (tempFolder .newFolder (), outputName );
4944 expectedFile .delete ();
5045 assertThat (expectedFile .exists (), is (false ));
5146
@@ -71,26 +66,23 @@ private File extractFileByName(File archive, String filenameToExtract, String ou
7166
7267 @ Test
7368 public void testSymbolicLinkDir () throws IOException {
74- Path uploadDir = Files . createTempDirectory ("upload" );
75- Path linkTarget = Files . createTempDirectory ( "ink -target" );
69+ Path uploadDir = tempFolder . newFolder ("upload" ). toPath ( );
70+ Path linkTarget = tempFolder . newFolder ( "link -target"). toPath ( );
7671 Path tmpFile = Files .createTempFile (linkTarget , "link-dir" , "rand" );
7772 Files .createSymbolicLink (uploadDir .resolve ("link-folder" ), linkTarget );
78- Path tarGzFile = Files . createTempFile ("docker-java" , " .tar.gz" );
73+ Path tarGzFile = tempFolder . newFile ("docker-java.tar.gz" ). toPath ( );
7974 //follow link only works for childrenOnly=false
8075 CompressArchiveUtil .tar (uploadDir , tarGzFile , true , false );
8176 File expectedFile = extractFileByName (tarGzFile .toFile (), tmpFile .toFile ().getName (), "foo1" );
8277 assertThat (expectedFile .canRead (), is (true ));
83- uploadDir .toFile ().delete ();
84- linkTarget .toFile ().delete ();
85- tarGzFile .toFile ().delete ();
8678 }
8779
8880 @ Test
8981 public void testSymbolicLinkFile () throws IOException {
90- Path uploadDir = Files . createTempDirectory ("upload" );
91- Path tmpFile = Files . createTempFile ("src" , "" );
82+ Path uploadDir = tempFolder . newFolder ("upload" ). toPath ( );
83+ Path tmpFile = tempFolder . newFile ("src" ). toPath ( );
9284 Files .createSymbolicLink (uploadDir .resolve ("link-file" ), tmpFile );
93- Path tarGzFile = Files . createTempFile ("docker-java" , " .tar.gz" );
85+ Path tarGzFile = tempFolder . newFile ("docker-java.tar.gz" ). toPath ( );
9486 boolean childrenOnly = false ;
9587 CompressArchiveUtil .tar (uploadDir , tarGzFile , true , childrenOnly );
9688 File expectedFile = extractFileByName (tarGzFile .toFile (), "link-file" , "foo1" );
@@ -99,8 +91,5 @@ public void testSymbolicLinkFile() throws IOException {
9991 CompressArchiveUtil .tar (uploadDir , tarGzFile , true , childrenOnly );
10092 extractFileByName (tarGzFile .toFile (), "link-file" , "foo1" );
10193 assertThat (expectedFile .canRead (), is (true ));
102- uploadDir .toFile ().delete ();
103- tmpFile .toFile ().delete ();
104- tarGzFile .toFile ().delete ();
10594 }
10695}
0 commit comments