package Ġnet . cord a . attachment demo Ċ Ċ import Ġnet . cord a . client . rpc . C ord a RPC Client Ċ import Ġnet . cord a . core . utilities . get OrThrow Ċ import Ġnet . cord a . node . services . Permissions . Companion . all Ċ import Ġnet . cord a . testing . core . D UMMY _ BANK _ A _ NAME Ċ import Ġnet . cord a . testing . core . D UMMY _ BANK _ B _ NAME Ċ import Ġnet . cord a . testing . driver . Driver Parameters Ċ import Ġnet . cord a . testing . driver . Port Allocation Ċ import Ġnet . cord a . testing . driver . driver Ċ import Ġnet . cord a . testing . node . User Ċ import Ġorg . junit . Test Ċ import Ġjava . util . concurrent . Comp letableFuture . supply Async Ċ Ċ class ĠAttachment Demo Test Ġ{ ĊĠĠĠ Ġ// Ġrun Ġwith Ġa Ġ 1 0 , 0 0 0 , 0 0 0 Ġbytes Ġin - memory Ġzip Ġfile . ĠIn Ġpractice , Ġa Ġslightly Ġbigger Ġfile Ġwill Ġbe Ġused Ġ(~ 1 0 , 0 0 2 , 0 0 0 Ġbytes ). ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` attachment Ġdemo Ġusing Ġa Ġ 1 0 MB Ġzip Ġfile `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠnumOf Expected Bytes Ġ= Ġ 1 0 _ 0 0 0 _ 0 0 0 ĊĠĠĠĠĠĠĠ Ġdriver ( Driver Parameters ( port Allocation Ġ= ĠPort Allocation . Incremental ( 2 0 0 0 0 ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdemo User Ġ= ĠlistOf ( User (" demo ", Ġ" demo ", Ġset Of ( all ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( node A , Ġnode B ) Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= ĠD UMMY _ BANK _ A _ NAME , Ġrpc Users Ġ= Ġdemo User , Ġmaximum Heap Size Ġ= Ġ" 1 g "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= ĠD UMMY _ BANK _ B _ NAME , Ġrpc Users Ġ= Ġdemo User , Ġmaximum Heap Size Ġ= Ġ" 1 g ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġit . get OrThrow () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweb server Handle Ġ= Ġstart Web server ( node B ). get OrThrow () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsender Thread Ġ= Ġsupply Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ord a RPC Client ( node A . rpc Address ). start ( demo User [ 0 ]. username , Ġdemo User [ 0 ]. password ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender ( it . proxy , ĠnumOf Expected Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecipient Thread Ġ= Ġsupply Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ord a RPC Client ( node B . rpc Address ). start ( demo User [ 0 ]. username , Ġdemo User [ 0 ]. password ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecipient ( it . proxy , Ġweb server Handle . listen Address . port ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender Thread . get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecipient Thread . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ