diff --git a/src/test/kotlin/filesystem/FSEntryTest.kt b/src/test/kotlin/filesystem/FSEntryTest.kt new file mode 100644 index 0000000..b474ac2 --- /dev/null +++ b/src/test/kotlin/filesystem/FSEntryTest.kt @@ -0,0 +1,42 @@ +package filesystem + +import org.junit.jupiter.api.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class FSEntryTest { + @Test + fun `non-cyclic folder`() { + val folder = + FSFolder( + "folder", + listOf( + FSFolder("folder", listOf()), + FSFile("text.txt", "Hello!"), + ), + ) + assertFalse(folder.isCyclic()) + } + + @Test + fun `cyclic folder`() { + val files = mutableListOf() + val folder = FSFolder("folder", files) + files.add(folder) + assertTrue(folder.isCyclic()) + } + + @Test + fun `long cyclic folder`() { + val files = mutableListOf() + val folder1 = FSFolder("folder", files) + val folder2 = FSFolder("folder2", listOf(folder1)) + val folder3 = FSFolder("folder3", listOf(folder2)) + val folder4 = FSFolder("folder4", listOf(folder3)) + files.add(folder4) + assertTrue(folder1.isCyclic()) + assertTrue(folder2.isCyclic()) + assertTrue(folder3.isCyclic()) + assertTrue(folder4.isCyclic()) + } +} \ No newline at end of file