All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonTest.maryk.rocksdb.ReadOptionsTest.kt Maven / Gradle / Ivy

package maryk.rocksdb

import kotlin.random.Random
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertTrue

class ReadOptionsTest {
    init {
        loadRocksDBLibrary()
    }

    @Test
    fun verifyChecksum() {
        ReadOptions().use { opt ->
            val boolValue = Random.nextBoolean()
            opt.setVerifyChecksums(boolValue)
            assertEquals(boolValue, opt.verifyChecksums())
        }
    }

    @Test
    fun fillCache() {
        ReadOptions().use { opt ->
            val boolValue = Random.nextBoolean()
            opt.setFillCache(boolValue)
            assertEquals(boolValue, opt.fillCache())
        }
    }

    @Test
    fun prefixSameAsStart() {
        ReadOptions().use { opt ->
            opt.setPrefixSameAsStart(true)
            assertTrue(opt.prefixSameAsStart())
        }
    }

    @Test
    fun failSetVerifyChecksumUninitialized() {
        setupUninitializedReadOptions().use { readOptions ->
            assertFailsWith {
                readOptions.setVerifyChecksums(true)
            }
        }
    }

    @Test
    fun failVerifyChecksumUninitialized() {
        setupUninitializedReadOptions().use { readOptions ->
            assertFailsWith {
                readOptions.verifyChecksums()
            }
        }
    }

    @Test
    fun failSetFillCacheUninitialized() {
        setupUninitializedReadOptions().use { readOptions ->
            assertFailsWith {
                readOptions.setFillCache(true)
            }
        }
    }

    @Test
    fun failFillCacheUninitialized() {
        setupUninitializedReadOptions().use { readOptions ->
            assertFailsWith {
                readOptions.fillCache()
            }
        }
    }

    private fun setupUninitializedReadOptions() =
        ReadOptions().apply {
            close()
        }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy