stdlib: improve tests
This commit is contained in:
committed by
Ilya Ryzhenkov
parent
495967a573
commit
80493aa4e6
@@ -0,0 +1,62 @@
|
||||
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))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user