Files
kotlin-fork/libraries/stdlib/test/io/Files.kt
T

63 lines
1.6 KiB
Kotlin

package test.io
import org.junit.Test as test
import java.io.File
import kotlin.test.assertEquals
class FilesTest {
test fun listFilesWithFilter() {
val dir = File.createTempFile("temp", System.nanoTime().toString())
dir.delete()
dir.mkdir()
File.createTempFile("temp1", ".kt", dir)
File.createTempFile("temp2", ".java", dir)
File.createTempFile("temp3", ".kt", dir)
val result = dir.listFiles { it.getName().endsWith(".kt") }
assertEquals(2, result!!.size())
}
test fun recurse() {
val dir = File.createTempFile("temp", System.nanoTime().toString())
dir.delete()
var totalFiles = 0
dir.recurse { totalFiles++ }
assertEquals(1, totalFiles)
dir.mkdir()
File.createTempFile("temp", "1.kt", dir)
File.createTempFile("temp", "2.java", dir)
val subdir = File(dir, "subdir")
subdir.mkdir()
File(subdir, "3.txt").createNewFile()
totalFiles = 0
dir.recurse { totalFiles++ }
assertEquals(5, totalFiles)
if (subdir.setReadable(false)) {
// On Windows, we can't make directory not readable, and setReadable() will return false
totalFiles = 0
dir.recurse { totalFiles++ }
assertEquals(4, totalFiles)
}
}
test fun relativePath() {
val file1 = File("src")
val file2 = File(file1, "kotlin")
val file3 = File("test")
assertEquals("kotlin", file1.relativePath(file2))
assertEquals("", file1.relativePath(file1))
assertEquals(file3.canonicalPath, file1.relativePath(file3))
}
}