[skip ci] add tests for yaml

merge-requests/1/merge
ansgarz 2 years ago
parent 47b98410d6
commit c52a367dc8

@ -18,3 +18,10 @@ inline fun <reified T : Any> String.yamlToType() = Yaml(configuration = YamlConf
T::class.serializer(),
this
)
@OptIn(InternalSerializationApi::class)
inline fun <reified T : Any> T.toYaml() = Yaml(configuration = YamlConfiguration(strictMode = false)).encodeToString(
T::class.serializer(),
this
)

@ -0,0 +1,47 @@
package org.domaindrivenarchitecture.provs.framework.core
import org.domaindrivenarchitecture.provs.server.domain.k3s.K3sConfig
import org.domaindrivenarchitecture.provs.server.domain.k3s.Node
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
internal class YamlUtilsKtTest {
@Test
fun yamlToType() {
// when
val text = """
fqdn: "host"
node:
ipv4: "1.2.3.4"
""".trimIndent()
val k3sConf = text.yamlToType<K3sConfig>()
// then
assertEquals("host", k3sConf.fqdn)
assertEquals("1.2.3.4", k3sConf.node.ipv4)
assertEquals(null, k3sConf.node.ipv6)
}
@Test
fun toYaml() {
// when
val yaml = K3sConfig("host", Node("1.2.3.4")).toYaml()
// then
val expected = """
fqdn: "host"
node:
ipv4: "1.2.3.4"
ipv6: null
loopback:
ipv4: "192.168.5.1"
ipv6: "fc00::5:1"
certmanager: null
apple: null
reprovision: false""".trimIndent()
assertEquals(expected, yaml)
}
}
Loading…
Cancel
Save