cedric
03/07/2018, 9:10 PMnikbucher
03/07/2018, 9:14 PMcedric
03/07/2018, 9:15 PMnikbucher
03/07/2018, 9:18 PMnikbucher
03/07/2018, 9:20 PMpackage com.beust.klaxon
import org.testng.Assert
import org.testng.annotations.Test
@Test
class JsonAnnotationTest {
    private val jsonString: String = json { obj(
            "name" to "John",
            "change" to 1
    ) }.toJsonString()
    fun ignoredWithAnnotation() {
        class IgnoredWithAnnotation(
                val name: String,
                @Json(ignored = true)
                val change: Int = 0)
        val result = Klaxon().parse<IgnoredWithAnnotation>(jsonString)
        Assert.assertEquals(result?.name, "John")
        Assert.assertEquals(result?.change, 0)
    }
    fun ignoredWithPrivate() {
        class IgnoredWithPrivate(
                val name: String,
                private val change: Int = 0){
            fun changed(): Boolean = change != 0
        }
        val result = Klaxon().parse<IgnoredWithPrivate>(jsonString)
        Assert.assertEquals(result?.name, "John")
        Assert.assertEquals(result?.changed(), false)
    }
    fun overrideIgnoredWithPrivateByAnnotation() {
        class OverrideIgnoredWithPrivate(
                val name: String,
                @Json(ignored = false)
                private val change: Int = 0){
            fun changed(): Boolean = change != 0
        }
        val result = Klaxon().parse<OverrideIgnoredWithPrivate>(jsonString)
        Assert.assertEquals(result?.name, "John")
        Assert.assertEquals(result?.changed(), true)
    }
}nikbucher
03/07/2018, 9:21 PMcedric
03/07/2018, 9:22 PMnikbucher
03/07/2018, 9:25 PMnikbucher
03/07/2018, 9:30 PMnikbucher
03/07/2018, 9:34 PM