package Ġc ord a . base Ċ Ċ import Ġnet . cord a . core . utilities . get OrThrow Ċ import Ġnet . cord a . node . services . transactions . Simple Not ary Service Ċ import Ġnet . cord a . node api . internal . Service Info Ċ import Ġnet . cord a . testing . D UMMY _ BANK _ A Ċ import Ġnet . cord a . testing . D UMMY _ BANK _ B Ċ import Ġnet . cord a . testing . D UMMY _ NOT ARY Ċ import Ġnet . cord a . testing . driver . driver Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠDriver Based Tests Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnode Names Ġ= ĠlistOf ( D UMMY _ NOT ARY . name , ĠD UMMY _ BANK _ A . name , ĠD UMMY _ BANK _ B . name ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` node Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver ( isDebug Ġ= Ġtrue , Ġstart Nodes In Process Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġstarts Ġthree Ġnodes Ġsimultaneously Ġwith Ġstart Node , Ġwhich Ġreturns Ġa Ġfuture Ġthat Ġcompletes Ġwhen Ġthe Ġnode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhas Ġcompleted Ġstartup . ĠThen Ġthese Ġare Ġall Ġresolved Ġwith Ġget OrThrow Ġwhich Ġreturns Ġthe ĠNode Handle Ġlist . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( not ary Handle , Ġparty A Handle , Ġparty B Handle ) Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 0 ], Ġadvert ised Services Ġ= Ġset Of ( Service Info ( Simple Not ary Service . type ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġit . get OrThrow () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġtest Ġmakes Ġan ĠRPC Ġcall Ġto Ġretrieve Ġanother Ġnode 's Ġname Ġfrom Ġthe Ġnetwork Ġmap , Ġto Ġverify Ġthat Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnodes Ġhave Ġstarted Ġand Ġcan Ġcommunicate . ĠThis Ġis Ġa Ġvery Ġbasic Ġtest , Ġin Ġpractice Ġtests Ġwould Ġbe Ġstarting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġflows , Ġand Ġverify ing Ġthe Ġstates Ġin Ġthe Ġvault Ġand Ġother Ġimportant Ġmetrics Ġto Ġensure Ġthat Ġyour ĠCor D app Ġis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġworking Ġas Ġintended . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( not ary Handle . rpc . well Known Party From X 5 0 0 Name ( D UMMY _ BANK _ A . name ) !!. name , ĠD UMMY _ BANK _ A . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( party A Handle . rpc . well Known Party From X 5 0 0 Name ( D UMMY _ BANK _ B . name ) !!. name , ĠD UMMY _ BANK _ B . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( party B Handle . rpc . well Known Party From X 5 0 0 Name ( D UMMY _ NOT ARY . name ) !!. name , ĠD UMMY _ NOT ARY . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` node Ġweb server Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver ( isDebug Ġ= Ġtrue , Ġstart Nodes In Process Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Handles Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 0 ], Ġadvert ised Services Ġ= Ġset Of ( Service Info ( Simple Not ary Service . type ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Node ( provided Name Ġ= Ġnode Names [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġit . get OrThrow () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġtest Ġstarts Ġeach Ġnode 's Ġweb server Ġand Ġmakes Ġan ĠHTTP Ġcall Ġto Ġretrieve Ġthe Ġbody Ġof Ġa ĠGET Ġendpoint Ġon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġnode 's Ġweb server , Ġto Ġverify Ġthat Ġthe Ġnodes ' Ġweb servers Ġhave Ġstarted Ġand Ġhave Ġloaded Ġthe ĠAPI . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Handles . forEach Indexed Ġ{ Ġidx , Ġnode Handle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Web server ( node Handle ). get OrThrow () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Address Ġ= Ġnode Handle . web Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" http :// $ node Address / api / example / me " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder (). url ( url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . new Call ( request ). execute () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( response . body (). string (). contains ( node Names [ idx ]. toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }