package Ġpb and k . json Ċ Ċ import Ġkotlinx . serialization . json . Json Null Ċ import Ġkotlinx . serialization . json . json Ċ import Ġkotlinx . serialization . json . json Array Ċ import Ġpb and k . test pb . Test All Types Proto 3 Ċ import Ġpb and k . w kt . List Value Ċ import Ġpb and k . w kt . Struct Ċ import Ġpb and k . w kt . Value Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠStruct And Value Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Strings () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto Ġ" value " Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of ( Ġ" key " Ġto ĠValue ( Value . Kind . StringValue (" value ")) Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Numbers () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto Ġ 1 . 0 Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of (" key " Ġto ĠValue ( Value . Kind . Number Value ( 1 . 0 )))) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto Ġjson Array Ġ{ Ġ+" value 1 "; Ġ+" value 2 " Ġ} Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of (" key " Ġto ĠValue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue . Kind . List Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Value ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue ( Value . Kind . StringValue (" value 1 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue ( Value . Kind . StringValue (" value 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Struct () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto Ġjson Ġ{ Ġ" inner Key " Ġto Ġ" value " Ġ} Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of (" key " Ġto ĠValue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue . Kind . Struct Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" inner Key " Ġto ĠValue ( Value . Kind . StringValue (" value "))) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Null () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto ĠJson Null Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of (" key " Ġto ĠValue ( Value . Kind . NullValue ()))) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Number String () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ Ġ" key " Ġto Ġ" 1 . 0 " Ġ} Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of (" key " Ġto ĠValue ( Value . Kind . StringValue (" 1 . 0 ")) )) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Struct Field _ with Mix () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Struct " Ġto Ġjson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 " Ġto Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 " Ġto Ġ" TWO " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 3 " Ġto Ġjson Array Ġ{ Ġ+" value 1 "; Ġ+" value 2 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 4 " Ġto Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 5 " Ġto ĠJson Null ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Struct Ġ= ĠStruct ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 " Ġto ĠValue ( Value . Kind . Number Value ( 1 . 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 " Ġto ĠValue ( Value . Kind . StringValue (" TWO ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 3 " Ġto ĠValue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValue . Kind . List Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Value ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValue ( Value . Kind . StringValue (" value 1 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValue ( Value . Kind . StringValue (" value 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 4 " Ġto ĠValue ( Value . Kind . BoolValue ( true )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 5 " Ġto ĠValue ( Value . Kind . NullValue ()) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Struct , Ġtest All Types Proto 3 . optional Struct ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Repeated List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" repeated List Value " Ġto Ġjson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ json Array Ġ{ Ġ+" a " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Repeated List Ġ= ĠlistOf ( List Value ( listOf ( Value ( kind Ġ= ĠValue . Kind . StringValue (" a ")) ))) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Repeated List , Ġtest All Types Proto 3 . repeated List Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Value Field _ null () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson Ġ{ Ġ" optional Value " Ġto ĠJson Null Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Value Ġ= ĠValue ( kind Ġ= ĠValue . Kind . NullValue ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest All Types Proto 3 Ġ= ĠTest All Types Proto 3 . decode FromJson String ( json ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Value , Ġtest All Types Proto 3 . optional Value ) ĊĠĠĠ Ġ} Ċ }