Deny cyclic FSFolders #3
|
@ -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<FSEntry>()
|
||||
val folder = FSFolder("folder", files)
|
||||
files.add(folder)
|
||||
assertTrue(folder.isCyclic())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `long cyclic folder`() {
|
||||
val files = mutableListOf<FSEntry>()
|
||||
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())
|
||||
}
|
||||
}
|
Reference in New Issue