Formatting Code base with ktlint
[ccsdk/cds.git] / ms / blueprintsprocessor / application / src / test / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / uat / ExtendedTemporaryFolder.kt
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.ccsdk.cds.blueprintsprocessor.uat
21
22 import java.io.File
23 import java.io.IOException
24 import java.nio.file.FileVisitResult
25 import java.nio.file.Files
26 import java.nio.file.Path
27 import java.nio.file.SimpleFileVisitor
28 import java.nio.file.attribute.BasicFileAttributes
29 import javax.annotation.PreDestroy
30
31 class ExtendedTemporaryFolder {
32     private val tempFolder = createTempDir("uat")
33
34     @PreDestroy
35     fun delete() = tempFolder.deleteRecursively()
36
37     /**
38      * A delegate to org.junit.rules.TemporaryFolder.TemporaryFolder.newFolder(String).
39      */
40     fun newFolder(folderName: String): File {
41         val dir = File(tempFolder, folderName)
42         if (!dir.mkdir()) {
43             throw IOException("Unable to create temporary directory $dir.")
44         }
45         return dir
46     }
47
48     /**
49      * Delete all files under the root temporary folder recursively. The folders are preserved.
50      */
51     fun deleteAllFiles() {
52         Files.walkFileTree(tempFolder.toPath(), object : SimpleFileVisitor<Path>() {
53             @Throws(IOException::class)
54             override fun visitFile(file: Path?, attrs: BasicFileAttributes?): FileVisitResult {
55                 file?.toFile()?.delete()
56                 return FileVisitResult.CONTINUE
57             }
58         })
59     }
60 }