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()