package Ġcom . r 3 . cord a . lib . ci . tests Ċ Ċ import Ġcom . r 3 . cord a . lib . ci . workflows . Request Key Ċ import Ġcom . r 3 . cord a . lib . ci . workflows . Sync Key Mapping Init iator Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . states . F ung ible Token Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . utilities . held By Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . utilities . iss ued By Ċ import Ġcom . r 3 . cord a . lib . tokens . contracts . utilities . of Ċ import Ġcom . r 3 . cord a . lib . tokens . money . USD Ċ import Ġcom . r 3 . cord a . lib . tokens . workflows . flows . rpc . Issue Tokens Ċ import Ġnet . cord a . core . identity . Party Ċ import Ġnet . cord a . core . utilities . get OrThrow Ċ import Ġnet . cord a . testing . common . internal . test Network Parameters Ċ import Ġnet . cord a . testing . core . AL ICE _ NAME Ċ import Ġnet . cord a . testing . core . BO B _ NAME Ċ import Ġnet . cord a . testing . core . CHAR LI E _ NAME Ċ import Ġnet . cord a . testing . core . single Identity Ċ import Ġnet . cord a . testing . node . Mock Network Ċ import Ġnet . cord a . testing . node . Mock Network Parameters Ċ import Ġnet . cord a . testing . node . Started Mock Node Ċ import Ġnet . cord a . testing . node . Test C ord app Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNull Ċ Ċ class ĠSync Key Mapping Flow Tests Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Net : ĠMock Network ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġalice Node : ĠStarted Mock Node ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbob Node : ĠStarted Mock Node ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchar lie Node : ĠStarted Mock Node ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġalice : ĠParty ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbob : ĠParty ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchar lie : ĠParty ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnot ary : ĠParty ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Net Ġ= ĠMock Network ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Network Parameters ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Parameters Ġ= Ġtest Network Parameters ( minimum Platform Version Ġ= Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ord apps ForAll Nodes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest C ord app . find C ord app (" com . r 3 . cord a . lib . tokens . contracts "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest C ord app . find C ord app (" com . r 3 . cord a . lib . tokens . workflows "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest C ord app . find C ord app (" com . r 3 . cord a . lib . tokens . money "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest C ord app . find C ord app (" com . r 3 . cord a . lib . ci . workflows ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread Per Node Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġalice Node Ġ= Ġmock Net . create Party Node ( AL ICE _ NAME ) ĊĠĠĠĠĠĠĠ Ġbob Node Ġ= Ġmock Net . create Party Node ( BO B _ NAME ) ĊĠĠĠĠĠĠĠ Ġchar lie Node Ġ= Ġmock Net . create Party Node ( CHAR LI E _ NAME ) ĊĠĠĠĠĠĠĠ Ġalice Ġ= Ġalice Node . info . single Identity () ĊĠĠĠĠĠĠĠ Ġbob Ġ= Ġbob Node . info . single Identity () ĊĠĠĠĠĠĠĠ Ġchar lie Ġ= Ġchar lie Node . info . single Identity () ĊĠĠĠĠĠĠĠ Ġnot ary Ġ= Ġmock Net . default Not ary Identity ĊĊĠĠĠĠĠĠĠ Ġmock Net . start Nodes () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠM yst er ious ĠK ry o Exception Ġthrown Ġhere Ġso Ġhaving Ġto Ġuse Ġthis Ġas Ġa Ġworkaround ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Net . stop Nodes () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sync Ġthe Ġkey Ġmapping Ġbetween Ġtwo Ġparties Ġin Ġa Ġtransaction `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAlice Ġissues Ġthen Ġp ays Ġsome Ġcash Ġto Ġa Ġnew Ġconf idential Ġidentity Ġthat ĠBob Ġdoesn 't Ġknow Ġabout ĊĠĠĠĠĠĠĠ Ġval Ġanonymous Party Ġ= Ġalice Node . start Flow ( Request Key ( char lie )). let Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġissue Tx Ġ= Ġalice Node . start Flow ( Issue Tokens ( listOf ( 1 0 0 0 Ġof ĠUSD Ġissued By Ġalice Ġheld By Ġanonymous Party ))). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġconf idential Identity Ġ= Ġissue Tx . tx . outputs . map Ġ{ Ġit . data Ġ}. filter Is Instance < F ung ible Token >(). single (). holder ĊĊĠĠĠĠĠĠĠ ĠassertNull ( bob Node . transaction Ġ{ Ġbob Node . services . identity Service . well Known Party From Anonymous ( conf idential Identity ) Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRun Ġthe Ġflow Ġto Ġsync Ġup Ġthe Ġident ities ĊĠĠĠĠĠĠĠ Ġalice Node . start Flow ( Sync Key Mapping Init iator ( bob , Ġissue Tx . tx )). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Net . wait Qu ies cent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġalice Node . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalice Node . services . identity Service . well Known Party From Anonymous ( conf idential Identity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġbob Node . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbob Node . services . identity Service . well Known Party From Anonymous ( conf idential Identity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġactual ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sync Ġident ities Ġwithout Ġa Ġtransaction `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanonymous Alice Ġ= Ġalice Node . start Flow ( Request Key ( alice )). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġanonymous Char lie Ġ= Ġalice Node . start Flow ( Request Key ( char lie )). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNull ( bob Node . transaction Ġ{ Ġbob Node . services . identity Service . well Known Party From Anonymous ( anonymous Alice ) Ġ}) ĊĠĠĠĠĠĠĠ ĠassertNull ( bob Node . transaction Ġ{ Ġbob Node . services . identity Service . well Known Party From Anonymous ( anonymous Char lie ) Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRun Ġthe Ġflow Ġto Ġsync Ġup Ġthe Ġident ities ĊĠĠĠĠĠĠĠ Ġalice Node . start Flow ( Sync Key Mapping Init iator ( bob , ĠlistOf ( anonymous Alice , Ġanonymous Char lie ))). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Net . wait Qu ies cent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( alice , Ġbob Node . services . identity Service . well Known Party From Anonymous ( anonymous Alice )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( char lie , Ġbob Node . services . identity Service . well Known Party From Anonymous ( anonymous Char lie )) ĊĠĠĠ Ġ} Ċ } ĊĊĊ