diff options
author | nea <romangraef@gmail.com> | 2021-08-16 15:45:27 +0200 |
---|---|---|
committer | nea <romangraef@gmail.com> | 2021-08-16 15:45:27 +0200 |
commit | 1159d5ad67594d98f0aa4e9899ece0406f423497 (patch) | |
tree | 03eea5b84aaa45cb876e3ce8251f98e0c61e62ac /src/jsTest | |
parent | 3e1becfa688f2cba280c475caf39aec3ce14a095 (diff) | |
download | webos-1159d5ad67594d98f0aa4e9899ece0406f423497.tar.gz webos-1159d5ad67594d98f0aa4e9899ece0406f423497.tar.bz2 webos-1159d5ad67594d98f0aa4e9899ece0406f423497.zip |
file service tests
Diffstat (limited to 'src/jsTest')
-rw-r--r-- | src/jsTest/kotlin/io/FileServiceTest.kt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/jsTest/kotlin/io/FileServiceTest.kt b/src/jsTest/kotlin/io/FileServiceTest.kt new file mode 100644 index 0000000..2ad5ee3 --- /dev/null +++ b/src/jsTest/kotlin/io/FileServiceTest.kt @@ -0,0 +1,42 @@ +package io + +import User +import io.kotest.core.spec.style.FunSpec +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class FileServiceTest : FunSpec({ + generateTests("Primitive", ::PrimitiveFileService) +}) + +fun <INode> FunSpec.generateTests(name: String, provider: () -> FileService<INode>) { + val aPath = Path.of("/a") as Path.Absolute + val homePath = Path.of("/roothome") as Path.Absolute + val dataA = "a".encodeToByteArray() + val rootUser = User("root", homePath, true) + test("$name: root inode exists") { + val fileService = provider() + val rootInode = fileService.getINode(Path.root) + assertTrue(fileService.exists(rootInode)) + } + test("$name: CRUD a file") { + val fileService = provider() + val aInode = fileService.getINode(aPath) + assertFalse(fileService.exists(aInode)) + assertEquals(CreateFileResult.Created, CreateFileResult.Created) + assertEquals(fileService.createFile(aInode, rootUser), CreateFileResult.Created) + assertTrue(fileService.exists(aInode)) + assertTrue(fileService.isFile(aInode)) + assertFalse(fileService.isSymlink(aInode)) + assertFalse(fileService.isDirectory(aInode)) + assertEquals(fileService.readFromFile(aInode, rootUser), ReadFileResult.Read(ByteArray(0))) + assertEquals(fileService.writeToFile(aInode, rootUser, dataA), WriteFileResult.Written) + assertEquals(fileService.readFromFile(aInode, rootUser), ReadFileResult.Read(dataA)) + assertTrue(fileService.isFile(aInode)) + assertEquals(fileService.deleteFile(aInode, rootUser), DeleteFileResult.Deleted) + assertFalse(fileService.isFile(aInode)) + assertFalse(fileService.exists(aInode)) + } + +} |