package Ġnet . cord a . node . services Ċ Ċ import Ġnet . cord a . client . rpc . C ord a RPC Client Ċ import Ġnet . cord a . contracts . serialization . gener ics . DataObject Ċ import Ġnet . cord a . core . messaging . start Flow Ċ import Ġnet . cord a . core . utilities . get OrThrow Ċ import Ġnet . cord a . core . utilities . logger For Ċ import Ġnet . cord a . flows . serialization . gener ics . GenericType Flow Ċ import Ġnet . cord a . node . Determin istic Sources Rule Ċ import Ġnet . cord a . node . internal . dj vm . Determin istic Verification Exception Ċ import Ġnet . cord a . testing . core . AL ICE _ NAME Ċ import Ġnet . cord a . testing . core . D UMMY _ NOT ARY _ NAME Ċ import Ġnet . cord a . testing . driver . Driver Parameters Ċ import Ġnet . cord a . testing . driver . driver Ċ import Ġnet . cord a . testing . driver . internal . incremental Port Allocation Ċ import Ġnet . cord a . testing . node . Not ary Spec Ċ import Ġnet . cord a . testing . node . User Ċ import Ġnet . cord a . testing . node . internal . cord app With Packages Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Class Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ Ċ @ Suppress (" FunctionName ") Ċ class ĠDetermin istic Contract With GenericType Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATA _ VALUE Ġ= Ġ 5 0 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= Ġlogger For < Determin istic Contract With GenericType Test >() ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUser (" u ", Ġ" p ", Ġset Of ( Permissions . all ())) ĊĊĠĠĠĠĠĠĠ Ġ@ Class Rule ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval Ġd jvm Sources Ġ= ĠDetermin istic Sources Rule () ĊĊĠĠĠĠĠĠĠ Ġfun Ġparameters ( run In Process : ĠBoolean Ġ= Ġfalse ): ĠDriver Parameters Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDriver Parameters ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġport Allocation Ġ= Ġincremental Port Allocation (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Nodes In Process Ġ= Ġrun In Process , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot ary Specs Ġ= ĠlistOf ( Not ary Spec ( D UMMY _ NOT ARY _ NAME , Ġstart In Process Ġ= Ġrun In Process , Ġvalidating Ġ= Ġtrue )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ord apps ForAll Nodes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ord app With Packages (" net . cord a . flows . serialization . gener ics "). signed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ord app With Packages (" net . cord a . contracts . serialization . gener ics "). signed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd jvm Bootstrap Source Ġ= Ġd jvm Sources . bootstrap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd jvm C ord a Source Ġ= Ġd jvm Sources . cord a ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 3 0 0 _ 0 0 0 ) Ċ ĉ fun Ġ` test ĠD JVM Ġcan Ġde serial ise Ġcommand Ġwith Ġgeneric Ġtype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver ( parameters ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalice Ġ= Ġstart Node ( provided Name Ġ= ĠA LIC E _ NAME , Ġrpc Users Ġ= ĠlistOf ( user )). get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx ID Ġ= ĠC ord a RPC Client ( host And Port Ġ= Ġalice . rpc Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start ( user . username , Ġuser . password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. use Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . proxy . start Flow (:: GenericType Flow , ĠData Object ( DATA _ VALUE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returnValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" TX - ID =$ tx ID ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 3 0 0 _ 0 0 0 ) ĊĠĠĠ Ġfun Ġ` test ĠD JVM Ġcan Ġde serial ise Ġcommand Ġwithout Ġvalue Ġof Ġgeneric Ġtype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver ( parameters ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalice Ġ= Ġstart Node ( provided Name Ġ= ĠA LIC E _ NAME , Ġrpc Users Ġ= ĠlistOf ( user )). get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġex Ġ= ĠassertThrows < Determin istic Verification Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ord a RPC Client ( host And Port Ġ= Ġalice . rpc Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start ( user . username , Ġuser . password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. use Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . proxy . start Flow (:: GenericType Flow , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returnValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ex ). has Message Containing (" Contract Ġverification Ġfailed : ĠFailed Ġrequirement : ĠPurchase Ġhas Ġa Ġprice , ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }