Replace get likes ajax page with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / utils / JsonTest.kt
1 package net.pterodactylus.sone.utils
2
3 import com.fasterxml.jackson.databind.node.ArrayNode
4 import com.fasterxml.jackson.databind.node.ObjectNode
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.hamcrest.Matchers.instanceOf
8 import org.junit.Test
9
10 /**
11  * Unit test for JSON utilities.
12  */
13 class JsonTest {
14
15         @Test
16         fun `object node is created correctly`() {
17                 val objectNode = jsonObject {
18                         put("foo", "bar")
19                 }
20                 assertThat(objectNode, instanceOf(ObjectNode::class.java))
21                 assertThat(objectNode.toString(), equalTo("{\"foo\":\"bar\"}"))
22         }
23
24         @Test
25         fun `object node is created with properties`() {
26             val objectNode = jsonObject("foo" to "bar", "baz" to "quo")
27                 assertThat(objectNode.toString(), equalTo("{\"foo\":\"bar\",\"baz\":\"quo\"}"))
28         }
29
30         @Test
31         fun `array node is created correctly`() {
32                 val arrayNode = listOf(
33                                 jsonObject { put("foo", "bar") },
34                                 jsonObject { put("baz", "quo") }
35                 ).toArray()
36                 assertThat(arrayNode, instanceOf(ArrayNode::class.java))
37                 assertThat(arrayNode.toString(), equalTo("[{\"foo\":\"bar\"},{\"baz\":\"quo\"}]"))
38         }
39
40         @Test
41         fun `array is created correctly for strings`() {
42             val arrayNode = jsonArray("foo", "bar", "baz")
43                 assertThat(arrayNode.toString(), equalTo("[\"foo\",\"bar\",\"baz\"]"))
44         }
45
46 }