Add declarative acceptance tests
[ccsdk/cds.git] / ms / blueprintsprocessor / application / src / test / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / ExtendedTemporaryFolder.kt
1 package org.onap.ccsdk.cds.blueprintsprocessor
2
3 import org.junit.rules.TemporaryFolder
4 import java.io.File
5 import java.io.IOException
6 import java.nio.file.FileVisitResult
7 import java.nio.file.Files
8 import java.nio.file.Path
9 import java.nio.file.SimpleFileVisitor
10 import java.nio.file.attribute.BasicFileAttributes
11 import javax.annotation.PreDestroy
12
13 class ExtendedTemporaryFolder {
14     private val tempFolder = TemporaryFolder()
15
16     init {
17         tempFolder.create()
18     }
19
20     @PreDestroy
21     fun delete() = tempFolder.delete()
22
23     /**
24      * A delegate to org.junit.rules.TemporaryFolder.TemporaryFolder.newFolder(String).
25      */
26     fun newFolder(folder: String): File = tempFolder.newFolder(folder)
27
28     /**
29      * Delete all files under the root temporary folder recursively. The folders are preserved.
30      */
31     fun deleteAllFiles() {
32         Files.walkFileTree(tempFolder.root.toPath(), object : SimpleFileVisitor<Path>() {
33             @Throws(IOException::class)
34             override fun visitFile(file: Path?, attrs: BasicFileAttributes?): FileVisitResult {
35                 file?.toFile()?.delete()
36                 return FileVisitResult.CONTINUE
37             }
38         })
39     }
40 }