@@ -8,18 +8,56 @@ import org.junit.jupiter.api.Test
88class MessageTest {
99
1010 @Nested
11- @DisplayName(" status " )
12- inner class Status {
11+ @DisplayName(" json parsing " )
12+ inner class JsonParsing {
1313
1414 @Test
15- internal fun `returns the status from the payload` () {
16- val payload = mapOf (" one" to " two" , " status" to " ok" )
17- val message = Message (" ref" , " topic" , " event" , payload, null )
18-
19- assertThat(message.ref).isEqualTo(" ref" )
20- assertThat(message.topic).isEqualTo(" topic" )
21- assertThat(message.event).isEqualTo(" event" )
22- assertThat(message.payload).isEqualTo(payload)
15+ internal fun `jsonParsing parses normal message` () {
16+ val json = """
17+ {
18+ "event": "update",
19+ "payload": {
20+ "user": "James S.",
21+ "message": "This is a test"
22+ },
23+ "ref": "6",
24+ "topic": "my-topic"
25+ }
26+ """ .trimIndent()
27+
28+ val message = Defaults .decode.invoke(json)
29+
30+ assertThat(message.ref).isEqualTo(" 6" )
31+ assertThat(message.topic).isEqualTo(" my-topic" )
32+ assertThat(message.event).isEqualTo(" update" )
33+ assertThat(message.payload).isEqualTo(mapOf (" user" to " James S." , " message" to " This is a test" ))
34+ assertThat(message.joinRef).isNull()
35+ assertThat(message.status).isNull()
36+ }
37+
38+ @Test
39+ internal fun `jsonParsing parses a reply` () {
40+ val json = """
41+ {
42+ "event": "phx_reply",
43+ "payload": {
44+ "response": {
45+ "user": "James S.",
46+ "message": "This is a test"
47+ },
48+ "status": "ok"
49+ },
50+ "ref": "6",
51+ "topic": "my-topic"
52+ }
53+ """ .trimIndent()
54+
55+ val message = Defaults .decode.invoke(json)
56+
57+ assertThat(message.ref).isEqualTo(" 6" )
58+ assertThat(message.topic).isEqualTo(" my-topic" )
59+ assertThat(message.event).isEqualTo(" phx_reply" )
60+ assertThat(message.payload).isEqualTo(mapOf (" user" to " James S." , " message" to " This is a test" ))
2361 assertThat(message.joinRef).isNull()
2462 assertThat(message.status).isEqualTo(" ok" )
2563 }
0 commit comments