summaryrefslogtreecommitdiff
path: root/src/jsTest/kotlin/io/FileServiceTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/jsTest/kotlin/io/FileServiceTest.kt')
-rw-r--r--src/jsTest/kotlin/io/FileServiceTest.kt19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/jsTest/kotlin/io/FileServiceTest.kt b/src/jsTest/kotlin/io/FileServiceTest.kt
index 2ad5ee3..9c9c8b9 100644
--- a/src/jsTest/kotlin/io/FileServiceTest.kt
+++ b/src/jsTest/kotlin/io/FileServiceTest.kt
@@ -12,6 +12,7 @@ class FileServiceTest : FunSpec({
fun <INode> FunSpec.generateTests(name: String, provider: () -> FileService<INode>) {
val aPath = Path.of("/a") as Path.Absolute
+ val bPath = Path.of("/a/b") as Path.Absolute
val homePath = Path.of("/roothome") as Path.Absolute
val dataA = "a".encodeToByteArray()
val rootUser = User("root", homePath, true)
@@ -19,6 +20,7 @@ fun <INode> FunSpec.generateTests(name: String, provider: () -> FileService<INod
val fileService = provider()
val rootInode = fileService.getINode(Path.root)
assertTrue(fileService.exists(rootInode))
+ assertEquals(fileService.getPath(rootInode), Path.root)
}
test("$name: CRUD a file") {
val fileService = provider()
@@ -38,5 +40,20 @@ fun <INode> FunSpec.generateTests(name: String, provider: () -> FileService<INod
assertFalse(fileService.isFile(aInode))
assertFalse(fileService.exists(aInode))
}
-
+ test("$name: CRUD a directory structure") {
+ val fileService = provider()
+ val aINode = fileService.getINode(aPath)
+ val bINode = fileService.getINode(bPath)
+ assertFalse(fileService.exists(aINode))
+ assertFalse(fileService.exists(bINode))
+ assertEquals(fileService.createDirectory(aINode, rootUser), CreateFileResult.Created)
+ assertEquals(fileService.createFile(bINode, rootUser), CreateFileResult.Created)
+ assertTrue(fileService.exists(aINode))
+ assertTrue(fileService.exists(bINode))
+ assertEquals(fileService.writeToFile(bINode, rootUser, dataA), WriteFileResult.Written)
+ assertEquals(fileService.readFromFile(bINode, rootUser), ReadFileResult.Read(dataA))
+ assertEquals(fileService.deleteFile(aINode, rootUser), DeleteFileResult.Deleted)
+ assertFalse(fileService.exists(bINode))
+ assertFalse(fileService.exists(aINode))
+ }
}