package Ġio . github . gap lo tech . examples Ċ Ċ import Ġcom . mongodb . async . client . Mongo Database Ċ import Ġio . github . gap lo tech . PB Codec Provider Ċ import Ġio . github . gap lo tech . P BM ongo . add PB Codec Ċ import Ġio . github . gap lo tech . pb . Test . HelloWorld Ċ import Ġio . kot lint est . Description Ċ import Ġio . kot lint est . TestResult Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġkotlinx . coroutines . experimental . run Blocking Ċ import Ġorg . lit ote . km ongo . async . K Mongo Ċ import Ġorg . lit ote . km ongo . coroutine . drop Ċ import Ġorg . lit ote . km ongo . coroutine . findOne Ċ import Ġorg . lit ote . km ongo . coroutine . get Collection Of Name Ċ import Ġorg . lit ote . km ongo . coroutine . save Ċ Ċ class ĠUse Transparent ly Ġ: ĠString Spec () Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠWr apped ( val Ġhello World : ĠHello World , Ġval Ġi : ĠInt ) ĊĊĠĠĠ Ġoverride Ġfun Ġis Instance Per Test () Ġ= Ġfalse ĊĊĠĠĠ Ġlateinit Ġvar Ġdb : ĠMongo Database ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" You Ġcan Ġadd Ġthe Ġcodec Ġprovider Ġto Ġthe ĠDB " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Ġ= ĠK Mongo . create Client (). get Database (" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add PB Codec ( PB Codec Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre serving Proto Field Names Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Then Ġuse Ġthe Ġdb Ġtransparent ly " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġdb . get Collection Of Name < HelloWorld >(" hello World ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . save ( hello World ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . findOne () ĠshouldBe Ġhello World ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Mix Ġand Ġmatch Ġdata Ġclass Ġwith ĠP b ĠClass Ġworks Ġtoo " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwrapped Ġ= ĠWr apped ( hello World , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġdb . get Collection Of Name < Wrapped >(" wrapped ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . save ( wrapped ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . findOne () ĠshouldBe Ġwrapped ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Test ( description : ĠDescription , Ġresult : ĠTest Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ Ġdb . drop () Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . after Test ( description , Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ