Replace get notifications ajax page with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / utils / JsonTest.kt
index ff741c1..9c68e62 100644 (file)
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
 import org.hamcrest.Matchers.instanceOf
+import org.hamcrest.Matchers.nullValue
 import org.junit.Test
 
 /**
@@ -22,6 +23,20 @@ class JsonTest {
        }
 
        @Test
+       fun `object node is created with correctly-typed properties`() {
+           val objectNode = jsonObject("string" to "foo", "int" to 1, "long" to 2L, "boolean" to true, "other" to Any())
+               assertThat(objectNode["string"].isTextual, equalTo(true))
+               assertThat(objectNode["string"].asText(), equalTo("foo"))
+               assertThat(objectNode["int"].isInt, equalTo(true))
+               assertThat(objectNode["int"].asInt(), equalTo(1))
+               assertThat(objectNode["long"].isLong, equalTo(true))
+               assertThat(objectNode["long"].asLong(), equalTo(2L))
+               assertThat(objectNode["boolean"].isBoolean, equalTo(true))
+               assertThat(objectNode["boolean"].asBoolean(), equalTo(true))
+               assertThat(objectNode["other"], nullValue())
+       }
+
+       @Test
        fun `array node is created correctly`() {
                val arrayNode = listOf(
                                jsonObject { put("foo", "bar") },
@@ -31,4 +46,10 @@ class JsonTest {
                assertThat(arrayNode.toString(), equalTo("[{\"foo\":\"bar\"},{\"baz\":\"quo\"}]"))
        }
 
+       @Test
+       fun `array is created correctly for strings`() {
+           val arrayNode = jsonArray("foo", "bar", "baz")
+               assertThat(arrayNode.toString(), equalTo("[\"foo\",\"bar\",\"baz\"]"))
+       }
+
 }