summaryrefslogtreecommitdiff
path: root/libs/test-utils/src/main/java/org
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-10-14 21:41:06 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-10-14 22:45:57 +0200
commitea9621389bfa62cb4e63688249c52ac0e41ff282 (patch)
tree4932900d0c058aa7e187fc02b214a024f801db18 /libs/test-utils/src/main/java/org
parent2be5a5171de2ecd51973862c243aecc0be4a0876 (diff)
Add tests for create dir/file/link that already exists
Fix implementations to work as expected (that createDirectory/File/Link fails if an entry with that name already exists).
Diffstat (limited to 'libs/test-utils/src/main/java/org')
-rw-r--r--libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt59
1 files changed, 59 insertions, 0 deletions
diff --git a/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt b/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt
index 2555195..84f4ed6 100644
--- a/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt
+++ b/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt
@@ -8,6 +8,7 @@ import org.the_jk.cleversync.io.Directory
import org.the_jk.cleversync.io.Link
import org.the_jk.cleversync.io.ModifiableLink
import org.the_jk.cleversync.io.ModifiableTree
+import java.io.IOException
abstract class TreeAbstractTest {
protected lateinit var tree: ModifiableTree
@@ -45,6 +46,26 @@ abstract class TreeAbstractTest {
assertThat(content.links).isEmpty()
}
+ @Test
+ open fun createDirectoryAlreadyExists() {
+ tree.createDirectory("foo")
+ tree.createFile("bar").write().use { it.write(0) }
+ if (supportSymlinks()) {
+ tree.createLink("fum", "does-not-exist")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createDirectory("foo")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createDirectory("bar")
+ }
+ if (supportSymlinks()) {
+ Assert.assertThrows(IOException::class.java) {
+ tree.createDirectory("fum")
+ }
+ }
+ }
+
@Test(timeout = 10000)
open fun observeCreateDirectory() {
val content = tree.liveList()
@@ -80,6 +101,26 @@ abstract class TreeAbstractTest {
}
@Test
+ open fun createFileAlreadyExists() {
+ tree.createDirectory("foo")
+ tree.createFile("bar").write().use { it.write(0) }
+ if (supportSymlinks()) {
+ tree.createLink("fum", "does-not-exist")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createFile("foo")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createFile("bar")
+ }
+ if (supportSymlinks()) {
+ Assert.assertThrows(IOException::class.java) {
+ tree.createFile("fum")
+ }
+ }
+ }
+
+ @Test
open fun overwriteFile() {
val foo = tree.createFile("foo")
foo.write().use { os ->
@@ -159,6 +200,24 @@ abstract class TreeAbstractTest {
}
@Test
+ open fun createLinkAlreadyExists() {
+ Assume.assumeTrue(supportSymlinks())
+
+ tree.createDirectory("foo")
+ tree.createFile("bar").write().use { it.write(0) }
+ tree.createLink("fum", "does-not-exist")
+ Assert.assertThrows(IOException::class.java) {
+ tree.createLink("foo", "test")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createLink("bar", "test")
+ }
+ Assert.assertThrows(IOException::class.java) {
+ tree.createLink("fum", "test")
+ }
+ }
+
+ @Test
open fun createLinkSubdir() {
Assume.assumeTrue(supportSymlinks())