webapi/src/test/kotlin/model/SubscribeJsonSerializationTest.kt
author Da Risk <da_risk@geekorum.com>
Mon, 15 Sep 2025 14:00:07 -0400
changeset 1370 13e39ef920a8
parent 1174 731f6ee517b6
permissions -rw-r--r--
update license headers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     1
/*
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
 * Geekttrss is a RSS feed reader application on the Android Platform.
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
 *
1370
13e39ef920a8 update license headers
Da Risk <da_risk@geekorum.com>
parents: 1174
diff changeset
     4
 * Copyright (C) 2017-2025 by Frederic-Charles Barthelery.
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     5
 *
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     6
 * This file is part of Geekttrss.
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     7
 *
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     8
 * Geekttrss is free software: you can redistribute it and/or modify
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     9
 * it under the terms of the GNU General Public License as published by
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
 * the Free Software Foundation, either version 3 of the License, or
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
 * (at your option) any later version.
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
 *
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
 * Geekttrss is distributed in the hope that it will be useful,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
 * GNU General Public License for more details.
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
 *
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
 * You should have received a copy of the GNU General Public License
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
 * along with Geekttrss.  If not, see <http://www.gnu.org/licenses/>.
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
 */
310
bd0611482474 Extract tinyrss web api to a new module "webapi"
Da Risk <da_risk@geekorum.com>
parents: 250
diff changeset
    21
package com.geekorum.ttrss.webapi.model
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
764
f1c8c08505a1 update to kotlin-1.4.10 and kotlinx.serialization-1.0.0
Da Risk <da_risk@geekorum.com>
parents: 750
diff changeset
    23
import com.geekorum.ttrss.webapi.Json
310
bd0611482474 Extract tinyrss web api to a new module "webapi"
Da Risk <da_risk@geekorum.com>
parents: 250
diff changeset
    24
import com.geekorum.ttrss.webapi.model.UnsubscribeFeedResponsePayload.Content
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
import com.google.common.truth.Truth
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
import org.junit.Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
class SubscribeToFeedJsonSerializationTest {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
    fun testThatSubscribeToFeedRequestPayloadDoCorrectJson() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
        val payload = SubscribeToFeedRequestPayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
            "http://my.feed.url/feed", 2,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
            "user", "password"
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
        ).apply {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
            sessionId = "SESSION_ID"
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
        }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    38
        val serializer = getSerializer<SubscribeToFeedRequestPayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
    39
        val result = Json.encodeToString(serializer, payload)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
        Truth.assertThat(result).isEqualTo("""
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
            {"sid":"SESSION_ID","feed_url":"http://my.feed.url/feed","category_id":2,"login":"user","password":"password","op":"subscribeToFeed"}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
        """.trimIndent())
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    45
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    47
    fun testThatSubscribeToFeedResponsePayloadDoLoadCorrectly() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    48
        val jsonString = """
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    49
            {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    50
              "seq": 2,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    51
              "status": 1,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    52
              "content": {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    53
                "status": {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    54
                  "code": 1,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    55
                  "message": "Feed successfully added",
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    56
                  "feed_id": 42
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    57
                }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    58
              }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    59
            }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    60
        """.trimIndent()
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    61
        val serializer = getSerializer<SubscribeToFeedResponsePayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
    62
        val result = Json.decodeFromString(serializer, jsonString)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    63
        val expected = SubscribeToFeedResponsePayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    64
            sequence = 2,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    65
            status = 1,
250
447cbf62117f SubscribeToFeed: refacto to encapsulate Content
Da Risk <da_risk@geekorum.com>
parents: 248
diff changeset
    66
            content = SubscribeToFeedResponsePayload.Content(
447cbf62117f SubscribeToFeed: refacto to encapsulate Content
Da Risk <da_risk@geekorum.com>
parents: 248
diff changeset
    67
                SubscribeToFeedResponsePayload.Content.Status(1, "Feed successfully added", 42))
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    68
        )
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    69
        Truth.assertThat(result.sequence).isEqualTo(expected.sequence)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    70
        Truth.assertThat(result.status).isEqualTo(expected.status)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    71
        Truth.assertThat(result.content).isEqualTo(expected.content)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    72
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    73
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    74
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    75
    fun testThatSubscribeToFeedResponsePayloadWithErrorDoLoadCorrectly() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    76
        val jsonString = """
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    77
            {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    78
              "seq": 0,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    79
              "status": 1,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    80
              "content": {"error":"NOT_LOGGED_IN"}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    81
            }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    82
        """.trimIndent()
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    83
        val serializer = getSerializer<SubscribeToFeedResponsePayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
    84
        val result = Json.decodeFromString(serializer, jsonString)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    85
        val expected = SubscribeToFeedResponsePayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    86
            sequence = 0,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    87
            status = 1,
1135
5dd06d1fbe83 webapi: rework serialization to use Content based polymorphic deserialization
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    88
            content = ErrorContent(error = Error.NOT_LOGGED_IN)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    89
        )
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    90
        Truth.assertThat(result.sequence).isEqualTo(expected.sequence)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    91
        Truth.assertThat(result.status).isEqualTo(expected.status)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    92
        Truth.assertThat(result.content).isEqualTo(expected.content)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    93
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    94
}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    95
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    96
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    97
class UnsubscribeFromFeedJsonSerializationTest {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    98
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    99
    fun testThatUnsubscribeFeedRequestPayloadDoCorrectJson() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   100
        val payload = UnsubscribeFeedRequestPayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   101
            42
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   102
        ).apply {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   103
            sessionId = "SESSION_ID"
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   104
        }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   105
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   106
        val serializer = getSerializer<UnsubscribeFeedRequestPayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
   107
        val result = Json.encodeToString(serializer, payload)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   108
        Truth.assertThat(result).isEqualTo("""
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   109
            {"sid":"SESSION_ID","feed_id":42,"op":"unsubscribeFeed"}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   110
        """.trimIndent())
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   111
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   112
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   113
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   114
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   115
    fun testThatUnsubscribeFeedResponsePayloadDoLoadCorrectly() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   116
        val jsonString = """
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   117
            {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   118
              "seq": 2,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   119
              "status": 1,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   120
              "content": {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   121
                "status": "OK"
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   122
              }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   123
            }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   124
        """.trimIndent()
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   125
        val serializer = getSerializer<UnsubscribeFeedResponsePayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
   126
        val result = Json.decodeFromString(serializer, jsonString)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   127
        val expected = UnsubscribeFeedResponsePayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   128
            sequence = 2,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   129
            status = 1,
250
447cbf62117f SubscribeToFeed: refacto to encapsulate Content
Da Risk <da_risk@geekorum.com>
parents: 248
diff changeset
   130
            content = Content(Content.Status.OK)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   131
        )
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   132
        Truth.assertThat(result.sequence).isEqualTo(expected.sequence)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   133
        Truth.assertThat(result.status).isEqualTo(expected.status)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   134
        Truth.assertThat(result.content).isEqualTo(expected.content)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   135
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   136
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   137
    @Test
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   138
    fun testThatUnsubscribeFeedResponsePayloadWithErrorDoLoadCorrectly() {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   139
        val jsonString = """
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   140
            {
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   141
              "seq": 0,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   142
              "status": 1,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   143
              "content": {"error":"FEED_NOT_FOUND"}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   144
            }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   145
        """.trimIndent()
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   146
        val serializer = getSerializer<UnsubscribeFeedResponsePayload>()
750
3a182d06fb1b update to kotlin 1.4
Da Risk <da_risk@geekorum.com>
parents: 639
diff changeset
   147
        val result = Json.decodeFromString(serializer, jsonString)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   148
        val expected = UnsubscribeFeedResponsePayload(
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   149
            sequence = 0,
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   150
            status = 1,
1135
5dd06d1fbe83 webapi: rework serialization to use Content based polymorphic deserialization
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
   151
            content = ErrorContent(error = Error.FEED_NOT_FOUND)
247
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   152
        )
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   153
        Truth.assertThat(result.sequence).isEqualTo(expected.sequence)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   154
        Truth.assertThat(result.status).isEqualTo(expected.status)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   155
        Truth.assertThat(result.content).isEqualTo(expected.content)
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   156
    }
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   157
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   158
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   159
}
a014fb47c603 Network: add json serialization for UnsubscribeFeed
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
   160