41 lines
1.4 KiB
Kotlin
41 lines
1.4 KiB
Kotlin
package dev.inmo.plagubot.config
|
|
|
|
import dev.inmo.plagubot.HelloPlugin
|
|
import kotlinx.serialization.InternalSerializationApi
|
|
import org.junit.Test
|
|
import kotlin.test.assertEquals
|
|
|
|
class ConfigTest {
|
|
@InternalSerializationApi
|
|
@Test
|
|
fun testThatPluginPassedToParamsWillBeCorrectlyUsedInPlugins() {
|
|
val rawConfig = """
|
|
{
|
|
"database": {
|
|
},
|
|
"botToken": "",
|
|
"plugins": [
|
|
"helloPlugin"
|
|
],
|
|
"params": {
|
|
"helloPlugin": {"type": "dev.inmo.plagubot.HelloPlugin", "parameter": "Example"}
|
|
}
|
|
}
|
|
""".trimIndent()
|
|
val config = configAndPluginsConfigJsonFormat.decodeFromString(PluginsConfigurationSerializer, rawConfig) as Config
|
|
|
|
assert(config.plugins.size == 1)
|
|
assert(config.plugins.first() is HelloPlugin)
|
|
assert((config.plugins.first() as HelloPlugin).parameter == "Example")
|
|
|
|
val redecoded = configAndPluginsConfigJsonFormat.decodeFromString(
|
|
PluginsConfigurationSerializer,
|
|
configAndPluginsConfigJsonFormat.encodeToString(PluginsConfigurationSerializer, config)
|
|
) as Config
|
|
assertEquals(config.databaseConfig, redecoded.databaseConfig)
|
|
assertEquals(config.plugins, redecoded.plugins)
|
|
assertEquals(config.botToken, redecoded.botToken)
|
|
assertEquals(config.params ?.toMap(), redecoded.params ?.toMap())
|
|
}
|
|
}
|