Introduce Path.createParentDirectories function #KT-53263

This commit is contained in:
Ilya Gorbunov
2023-01-19 19:30:20 +01:00
committed by Space Team
parent cf10bb8871
commit d2dc23d8bb
5 changed files with 85 additions and 11 deletions
@@ -59,6 +59,45 @@ class PathExtensionsTest : AbstractPathTest() {
assertFailsWith<FileAlreadyExistsException> { file.createFile() }
}
@Test
fun createParentDirectories() {
val dir = createTempDirectory().cleanupRecursively()
val file = dir / "test-dir" / "sub-dir" / "new-file"
val parent = file.parent!!
assertTrue(file.notExists())
assertTrue(parent.notExists())
val result = file.createParentDirectories()
assertTrue(file.notExists())
assertTrue(parent.isDirectory())
assertEquals(file, result)
file.createFile()
file.createParentDirectories()
assertTrue(file.exists())
assertTrue(parent.isDirectory())
}
@Test
fun createParentDirectoriesRelativePath() {
run {
val path = Path("test_path_without_parent")
path.createParentDirectories()
assertTrue(path.toAbsolutePath().parent!!.isDirectory())
}
run {
val path = Path("build/test_subdirectory/test_path")
val parent = path.parent!!
assertTrue(parent.notExists())
parent.cleanupRecursively()
path.createParentDirectories()
assertTrue(path.notExists())
assertTrue(parent.isDirectory())
}
}
@Test
fun createTempFileDefaultDir() {
val file1 = createTempFile().cleanup()
@@ -359,7 +359,7 @@ class PathRecursiveFunctionsTest : AbstractPathTest() {
OnErrorResult.SKIP_SUBTREE
})
src.copyToRecursively(dst.apply { parent?.createDirectories() }, followLinks = false)
src.copyToRecursively(dst.createParentDirectories(), followLinks = false)
}
@Test