X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Frhynodge%2Fstates%2FJsonStateTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Frhynodge%2Fstates%2FJsonStateTest.kt;h=b21095ea8d1a6b07bd0e035f449265848e011d26;hb=6cc668aa117e70ac390e5a669d5e6ceb8822b3a7;hp=0000000000000000000000000000000000000000;hpb=18838f4a1bbd9bfecf9384f4b1437eebca0eda75;p=rhynodge.git diff --git a/src/test/kotlin/net/pterodactylus/rhynodge/states/JsonStateTest.kt b/src/test/kotlin/net/pterodactylus/rhynodge/states/JsonStateTest.kt new file mode 100644 index 0000000..b21095e --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/rhynodge/states/JsonStateTest.kt @@ -0,0 +1,37 @@ +package net.pterodactylus.rhynodge.states + +import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper +import com.spotify.hamcrest.jackson.JsonMatchers.jsonObject +import org.hamcrest.MatcherAssert.assertThat +import org.junit.Test +import java.io.StringWriter + +class JsonStateTest { + + @Test + fun `json state can be serialized`() { + val jsonState = JsonState(jsonObject) + StringWriter().use { stringWriter -> + objectMapper.writeValue(stringWriter, jsonState) + val deserializedState = objectMapper.readValue(stringWriter.toString(), AbstractState::class.java) as JsonState + assertThat(deserializedState.jsonNode, jsonObject(jsonObject)) + } + } + + private val jsonObject = objectMapper.createObjectNode() + .put("state", "foo") + .also { + it.putArray("list") + .add("value1") + .add("value2") + }.also { + it.putObject("object") + .put("foo", true) + .put("bar", "yes") + .put("baz", 1.5) + .putNull("qux") + } + +} + +private val objectMapper = jacksonObjectMapper()