cedric
03/07/2018, 9:10 PMnikbucher
03/07/2018, 9:14 PMcedric
03/07/2018, 9:15 PMnikbucher
03/07/2018, 9:18 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)
}
}
cedric
03/07/2018, 9:22 PMnikbucher
03/07/2018, 9:25 PM