@ file : Suppress (" EXPERIMENT AL _ API _ USAGE ") Ċ Ċ package Ġjson Ċ Ċ import Ġcom . gitlab . k ord lib . common . entity . Discord Shard Ċ import Ġcom . gitlab . k ord lib . common . entity . Presence Status Ċ import Ġcom . gitlab . k ord lib . common . entity . Snow flake Ċ import Ġcom . gitlab . k ord lib . common . entity . optional . Optional Int Ċ import Ġcom . gitlab . k ord lib . common . entity . optional . coerce To Missing Ċ import Ġcom . gitlab . k ord lib . common . entity . optional . optional Ċ import Ġcom . gitlab . k ord lib . common . entity . optional . optional Int Ċ import Ġcom . gitlab . k ord lib . gateway .* Ċ import Ġkotlinx . serialization . json .* Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ private Ġval Ġjson Ġ= ĠJson Ġ{ Ġencode Defaults Ġ= Ġfalse Ġ} Ċ Ċ class ĠCommand Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Resume Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġ" token " ĊĠĠĠĠĠĠĠ Ġval ĠsessionId Ġ= Ġ" session " ĊĠĠĠĠĠĠĠ Ġval Ġsequence Ġ= Ġ 1 3 3 7 ĊĊĠĠĠĠĠĠĠ Ġval Ġresume Ġ= Ġjson . encode ToString ( Command . Companion , ĠResume ( token , ĠsessionId , Ġsequence )) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Resume . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" token ", Ġtoken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" session _ id ", ĠsessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" seq ", Ġsequence ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġresume ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Heartbeat Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterval Ġ= Ġ 1 3 3 7 ĊĊĠĠĠĠĠĠĠ Ġval Ġheartbeat Ġ= Ġjson . encode ToString ( Command . Companion , ĠCommand . Heartbeat ( interval )) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Heartbeat . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġinterval ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġheartbeat ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Opt In ( Priv ileged Intent :: class ) ĊĠĠĠ Ġfun Ġ` Request Guild Members Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġguild Id Ġ= Ġ" 1 3 3 7 " ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" test " ĊĠĠĠĠĠĠĠ Ġval Ġlimit Ġ= Ġ 1 3 3 7 ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġjson . encode ToString ( Command . Companion , ĠRequest Guild Members ( Snow flake ( guild Id ), Ġquery . optional (), ĠOptional Int . Value ( limit ))) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Request Guild Members . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" guild _ id ", Ġguild Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" query ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" limit ", Ġlimit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġrequest ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Update Voice State Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġguild Id Ġ= Ġ" 1 3 3 7 " ĊĠĠĠĠĠĠĠ Ġval Ġchannel Id Ġ= Ġ" 4 2 0 " ĊĠĠĠĠĠĠĠ Ġval Ġself Mute Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġself De af Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġjson . encode ToString ( Command . Companion , ĠUpdate Voice Status ( Snow flake ( guild Id ), ĠSnow flake ( channelId ), Ġself Mute , Ġself De af )) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Voice State Update . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" guild _ id ", Ġguild Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" channel _ id ", Ġchannel Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" self _ mute ", Ġself Mute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" self _ de af ", Ġself De af ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġstatus ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Update State Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsince Ġ= Ġ 1 2 4 2 5 1 8 4 0 0 L ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠPres ence Status . Online ĊĠĠĠĠĠĠĠ Ġval Ġa fk Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġupdate Status Ġ= Ġjson . encode ToString ( Command . Companion , ĠUpdate Status ( since , Ġgame , Ġstatus , Ġa fk )) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Status Update . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" since ", Ġsince ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" activities ", Ġnull Ġas ĠString ?) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" status ", Ġstatus . value . toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" af k ", Ġa fk ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġupdate Status ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Opt In ( Priv ileged Intent :: class ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Ident ify Ġcommand Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġ" test " ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠIdent ify Properties (" os ", Ġ" browser ", Ġ" device ") ĊĠĠĠĠĠĠĠ Ġval Ġcompress Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġlarge Threshold Ġ= Ġ 1 3 3 7 ĊĠĠĠĠĠĠĠ Ġval Ġshard Ġ= ĠDiscord Shard ( 0 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġpresence : ĠDiscord Presence ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġidentify Ġ= Ġjson . encode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand . Companion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent ify ( token , Ġproperties , Ġcompress . optional (), Ġlarge Threshold . optional Int (), Ġshard . optional (), Ġpresence . optional (). coerce To Missing (), ĠInt ents . all ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġjson . encode ToString ( JsonObject . serializer (), Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op ", ĠOp Code . Ident ify . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" token ", Ġtoken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" properties ", Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("\ $ os ", Ġ" os ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("\ $ browser ", Ġ" browser ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ("\ $ device ", Ġ" device ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" compress ", Ġcompress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" large _ threshold ", Ġlarge Threshold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" shard ", Ġbuild JsonArray Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Json Primitive ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Json Primitive ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" int ents ", ĠInt ents . all . code . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( json , Ġidentify ) ĊĠĠĠ Ġ} Ċ } Ċ