/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . serialization . features Ċ Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . json .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠSkip Defaults Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġjson Ġ= ĠJson Ġ{ Ġencode Defaults Ġ= Ġfalse Ġ} ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠData ( val Ġbar : ĠString , Ġval Ġfoo : ĠInt Ġ= Ġ 4 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġlist : ĠList < Int > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġlist With Something : ĠList < Int > Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġserialize Correct ly Defaults () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson With Defaults Ġ= ĠJson Ġ{ Ġencode Defaults Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠData (" bar ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" bar ":" bar "," foo ": 4 2 ," list ":[ ]," list With Something ":[ 1 , 2 , 3 ]} """, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson With Defaults . encode ToString ( Data . serializer (), Ġd ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġserialize Correct ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠData (" bar ", Ġ 1 0 0 ). apply Ġ{ Ġlist Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (""" {" bar ":" bar "," foo ": 1 0 0 ," list ":[ 1 , 2 , 3 ]} """, Ġjson . encode ToString ( Data . serializer (), Ġd )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġserialize Correct ly And Drop Body () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠData (" bar ", Ġ 4 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals (""" {" bar ":" bar "," foo ": 4 3 } """, Ġjson . encode ToString ( Data . serializer (), Ġd )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġserialize Correct ly And Drop All () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠData (" bar ") ĊĠĠĠĠĠĠĠ ĠassertEquals (""" {" bar ":" bar "} """, Ġjson . encode ToString ( Data . serializer (), Ġd )) ĊĠĠĠ Ġ} Ċ Ċ } Ċ