package Ġorg . kin . sdk . base . network . services Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Answer Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . eq Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify No More Interactions Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Zero Interactions Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . kin . sdk . base . models . App Idx Ċ import Ġorg . kin . sdk . base . models . Invoice Ċ import Ġorg . kin . sdk . base . models . Invoice List Ċ import Ġorg . kin . sdk . base . models . Key Ċ import Ġorg . kin . sdk . base . models . Kin Account Ċ import Ġorg . kin . sdk . base . models . Kin Amount Ċ import Ġorg . kin . sdk . base . models . Kin Binary Memo Ċ import Ġorg . kin . sdk . base . models . Kin DateFormat Ċ import Ġorg . kin . sdk . base . models . Kin Memo Ċ import Ġorg . kin . sdk . base . models . Kin Payment Item Ċ import Ġorg . kin . sdk . base . models . Kin Token Account Info Ċ import Ġorg . kin . sdk . base . models . Line Item Ċ import Ġorg . kin . sdk . base . models . Qu ark Amount Ċ import Ġorg . kin . sdk . base . models . as Kin AccountId Ċ import Ġorg . kin . sdk . base . models . as Kin Payments Ċ import Ġorg . kin . sdk . base . models . as PrivateKey Ċ import Ġorg . kin . sdk . base . models . as PublicKey Ċ import Ġorg . kin . sdk . base . models . sol ana . Associated Token Program Ċ import Ġorg . kin . sdk . base . models . sol ana . Fixed ByteArray 3 2 Ċ import Ġorg . kin . sdk . base . models . sol ana . Hash Ċ import Ġorg . kin . sdk . base . models . sol ana . Memo Program Ċ import Ġorg . kin . sdk . base . models . sol ana . Token Program Ċ import Ġorg . kin . sdk . base . models . sol ana . Transaction Ċ import Ġorg . kin . sdk . base . models . sol ana . marshal Ċ import Ġorg . kin . sdk . base . models . sol ana . un marshal Ċ import Ġorg . kin . sdk . base . models . to KeyPair Ċ import Ġorg . kin . sdk . base . models . to Signing KeyPair Ċ import Ġorg . kin . sdk . base . network . api . Kin Account Api V 4 Ċ import Ġorg . kin . sdk . base . network . api . Kin Account Creation Api V 4 Ċ import Ġorg . kin . sdk . base . network . api . Kin Streaming Api V 4 Ċ import Ġorg . kin . sdk . base . network . api . Kin Transaction Api V 4 Ċ import Ġorg . kin . sdk . base . stell ar . models . Api Config Ċ import Ġorg . kin . sdk . base . stell ar . models . Kin Transaction Ċ import Ġorg . kin . sdk . base . stell ar . models . Network Environment Ċ import Ġorg . kin . sdk . base . stell ar . models . Sol ana Kin Transaction Ċ import Ġorg . kin . sdk . base . tools . Base 5 8 Ċ import Ġorg . kin . sdk . base . tools . Kin LoggerFactory Impl Ċ import Ġorg . kin . sdk . base . tools . Network Operations Handler Impl Ċ import Ġorg . kin . sdk . base . tools . Optional Ċ import Ġorg . kin . sdk . base . tools . TestUtils Ċ import Ġorg . kin . sdk . base . tools . Value Subject Ċ import Ġorg . kin . sdk . base . tools . test Ċ import Ġorg . kin . sdk . base . tools . update Status Ċ import Ġorg . kin . stell ar fork . codec . Base 6 4 Ċ import Ġjava . util . concurrent . Count DownLatch Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertNull Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠKin ServiceImpl V 4 Test Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠTestUtils . new Signing Kin Account () ĊĊĠĠĠĠĠĠĠ Ġval Ġsub sid izer Id Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" G DX S RI W 5 MB 2 FZ 3 XM 6 D 6 R KV V VO 6 5 JL Q ET BR UA 6 XQ 4 EY Y H KR PH IF NW CV NC "). id ĊĠĠĠĠĠĠĠ Ġval Ġmin Rent Ex emption In L amp ort s Ġ= Ġ 5 5 5 L Ġ// Ġwould Ġactually Ġbe Ġsize Ġdepend ant Ġin Ġreal Ġlife ĊĠĠĠĠĠĠĠ Ġval Ġtoken Key Ġ= ĠToken Program . PROGRAM _ KEY ĊĠĠĠĠĠĠĠ Ġval Ġmint Key Ġ= ĠKey . PublicKey (" GB JE HP Z 5 WW Q 7 Q ZZ K AR PY SZ CK Z 3 ZO JQ WY RG AB SN 6 LA UN QR N 7 K BO QL 5 EX S ") ĊĠĠĠĠĠĠĠ Ġval Ġrecent Block Hash Ġ= ĠHash ( Fixed ByteArray 3 2 ()) ĊĠĠĠĠĠĠĠ Ġval Ġapp Index Ġ= ĠApp Idx . TEST _ APP _ IDX ĊĊĠĠĠĠĠĠĠ Ġval Ġregistered Account Ġ= Ġaccount . update Status ( Kin Account . Status . Registered ( 1 2 3 4 )) ĊĠĠĠĠĠĠĠ Ġval Ġcreate Request Ġ= Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub sid izer : ĠKey . PublicKey Ġ= Ġsub sid izer Id . to KeyPair (). as PublicKey () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġowner Ġ= Ġaccount . key . as PublicKey () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogram Key Ġ= Ġtoken Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmint Ġ= Ġmint Key ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigner Ġ= Ġaccount . to Signing KeyPair (). as PrivateKey () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmemo Ġ= Ġif Ġ( app Index . value Ġ> Ġ 0 ) ĠKin Binary Memo . Builder ( app Index . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tran fer Type ( Kin Binary Memo . Transfer Type . None ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ġelse Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreate Assoc Account Ġ= ĠAssoci ated Token Program . Create Associated Token Account ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub sid izer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . new Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub sid izer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* listOf NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemo ?. let Ġ{ ĠM emo Program . Base 6 4 Encoded Memo . from Bytes ( it . encode ()). instruction Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Assoc Account . instruction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToken Program . Set Authority ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Ġ= Ġcreate Assoc Account . addr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Authority Ġ= Ġowner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Authority Ġ= Ġsub sid izer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthority Type Ġ= ĠToken Program . Authority Type . Authority Close Account , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogram Key Ġ= Ġprogram Key ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). instruction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). copy AndSet Recent Block hash ( recent Block Hash ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. copy And Sign ( signer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" transaction : Ġ${ Base 5 8 . encode ( transaction . marshal ()) }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Request ( transaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġget Account Request Ġ= ĠKin Account Api V 4 . Get Account Request ( account . id ) ĊĠĠĠĠĠĠĠ Ġval Ġresolve Account Request Ġ= ĠKin Account Api V 4 . Resolve Token Accounts Request ( account . id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpaging Token Ġ= ĠKin Transaction . Paging Token (" 1 6 5 7 6 6 4 5 3 2 2 2 4 8 1 9 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġhistorical Kin Transaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . H istorical ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin DateFormat (" 2 0 1 9 - 1 2 - 1 2 T 2 1 : 3 2 : 4 3 Z "). timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġhistorical Kin Transaction 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj TK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . H istorical ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin DateFormat (" 2 0 1 9 - 1 2 - 1 2 T 2 1 : 3 2 : 4 3 Z "). timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġget Transaction History Request Latest Page Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Request ( account . id ) ĊĠĠĠĠĠĠĠ Ġval Ġget Transaction History Request With Paging Token Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Request ( account . id , Ġpaging Token ) ĊĊĠĠĠĠĠĠĠ Ġval Ġget Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Request ( h istorical Kin Transaction . transaction Hash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsut : ĠKin Service ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Account Api : ĠKin Account Api V 4 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Transaction Api : ĠKin Transaction Api V 4 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Streaming Api : ĠKin Streaming Api V 4 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Account Creation Api : ĠKin Account Creation Api V 4 ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Account Api Ġ= Ġmock Ġ{} ĊĠĠĠĠĠĠĠ Ġmock Transaction Api Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget Service Config ( any (), Ġany ()) Ġ} Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . GetService Config Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . GetService Config Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . GetService Config Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub sid izer Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Key . as Kin AccountId (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmint Key . as Kin AccountId () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget Recent Block Hash ( any (), Ġany ()) Ġ} Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Recent Block Hash Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Recent Block Hash Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Recent Block Hash Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Block Hash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget Minimum Balance For Rent Ex emption ( any (), Ġany ()) Ġ} Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Minimum Balance For Rent Ex emption Response ) Ġ-> ĠUnit >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Minimum Balance For Rent Ex emption Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Minimum Balance For Rent Ex emption Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Rent Ex emption In L amp ort s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġsign Transaction ( any (), Ġany ()) Ġ} Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġit . get Argument < Kin Transaction Api V 4 . Sign Transaction Request >( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= Ġit . get Argument <( Kin Transaction Api V 4 . Sign Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkin Transaction Ġ= ĠSol ana Kin Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Value Ġ= Ġrequest . transaction . marshal (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Environment Ġ= ĠNetwork Environment . Test Net , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List Ġ= Ġrequest . invoice List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( Kin Transaction Api V 4 . Sign Transaction Response ( Kin Transaction Api V 4 . Sign Transaction Response . Result . Ok , Ġkin Transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransactions Ġ= ĠlistOf ( h istorical Kin Transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransactions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġmock Streaming Api Ġ= Ġmock Ġ{} ĊĠĠĠĠĠĠĠ Ġmock Account Creation Api Ġ= Ġmock Ġ{} ĊĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠKin LoggerFactory Impl ( true ) ĊĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠKin ServiceImpl V 4 ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Config . Test Net Ag ora . network Env , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Operations Handler Impl ( logger Ġ= Ġlogger ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Account Api , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Transaction Api , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Streaming Api , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Account Creation Api , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistered Account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test ( 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( registered Account , Ġvalue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ already _ exists () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Exists , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistered Account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( registered Account , Ġvalue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ already _ exists _ missing _ account () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Exists ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistered Account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Account ( eq ( Kin Account Api V 4 . Get Account Request ( registered Account . id )), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( registered Account , Ġvalue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( Kin Account Api V 4 . Get Account Request ( registered Account . id )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ mal formed _ response () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Ok ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Illegal Response , Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ undefined _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Undefined Error ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ?. status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Transient Failure ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ?. status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Account _ sdk Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Creation Api V 4 . Create Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Creation Api V 4 . Create Account Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . create Account ( account . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Idx . TEST _ APP _ IDX ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ?. status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Creation Api ). create Account ( eq ( create Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Minimum Balance For Rent Ex emption ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġresolve Account _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Accounts Ġ= ĠlistOf ( Kin Token Account Info ( TestUtils . new PublicKey (), ĠKin Amount . ONE , Ġnull )) ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Resolve Token Accounts Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Accounts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . resolve Token Accounts ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( token Accounts , Ġvalue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġresolve Account _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Accounts Ġ= ĠlistOf ( TestUtils . new PublicKey ()) ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Resolve Token Accounts Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response . Result . Transient Failure ( Exception ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . resolve Token Accounts ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġresolve Account _ unknown _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Accounts Ġ= ĠlistOf ( TestUtils . new PublicKey ()) ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Resolve Token Accounts Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Resolve Token Accounts Response . Result . Undefined Error ( Exception ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . resolve Token Accounts ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). resolve Token A counts ( eq ( resolve Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistered Account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( registered Account , Ġvalue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ not _ found () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Item NotFound , Ġerror ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ mal formed _ response () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Ok ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Illegal Response , Ġerror ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ undefined _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Undefined Error ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Transient Failure ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Account _ SDK Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Account Api V 4 . Get Account Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Account Api V 4 . Get Account Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Account Api ). get Account ( eq ( get Account Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransactions Ġ= ĠlistOf ( h istorical Kin Transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransactions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( value , ĠlistOf ( h istorical Kin Transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ il legal Response () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Illegal Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ not _ found () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Item NotFound , Ġerror ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Transient Failure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ undefined _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Undefined Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Latest Transactions _ SDK Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . get Latest Transactions ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request Latest Page ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransactions Ġ= ĠlistOf ( h istorical Kin Transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransactions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( h istorical Kin Transaction ), Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ il legal Response () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Illegal Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ not _ found () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Item NotFound ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Transient Failure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ unexpected _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Undefined Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction Page _ SDK Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction History Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction History Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction Page ( account . id , Ġpaging Token ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction History ( eq ( getTransaction History Request With Paging Token ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistorical Kin Transaction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( h istorical Kin Transaction , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ response _ mal formed () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . Ok ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Illegal Response , Ġerror ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ Item NotFound () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Kin Service . Fatal Error . Item NotFound , Ġerror ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ Unexpected Service Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . Undefined Error ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ Transient Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . Transient Failure ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Transaction _ SDK Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Get Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Get Transaction Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . getTransaction ( h istorical Kin Transaction . transaction Hash ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getTransaction ( eq ( getTransaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbuild And Sign Transaction _ success _ no _ memo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD 7 Sg RB f jy h 1 qk Q Cs j 5 1 y D 3 yq MX KY PP u J ZW j R 7 om Ii Sy f + US AES 8 p O 1 T jz Ps NS yt 8 3 QM x / cN Q 3 2 X 2 a ak ji ym AIN Ag AB BO 8 oot 1 gd F zu 7 PD 9 F Va 1 d 7 q Vw J MM a A 9 e H CY wd UX n QV th Xc X 6 W 5 Rx / U xd W FA 1 U zm GZ g U AY 7 y HY M vn C / is Ic IY 7 / sh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og Lw bd 9 u HX Za GT 2 cv h Rs 7 re aw ct IX t X 1 s 3 k T q M 9 Y V +/ w Cp AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AA AB Aw MB Ag E JA + C uu w AAAAAA ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsource Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from Secret Seed (" SD FD PC 5 VK 7 FS FD H 4 Q 3 C QP Q RA 4 OP F XY M 6 C FR XV Q OA 7 6 7 OG XF Y BE DE Q G MF ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Status ( Kin Account . Status . Registered ( 1 6 5 7 6 2 5 0 1 8 5 2 5 2 8 6 4 )) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") ĊĊĠĠĠĠĠĠĠ Ġsut . build And Sign Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key . as PublicKey (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Kin Payment Item ( Kin Amount ( 1 2 3 ), Ġdestination Account . id )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Memo . NONE , ĊĠĠĠĠĠĠĠ Ġ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Base 6 4 . encode Base 6 4 String ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( expected . bytes Value . content Equals ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( value . record Type Ġis ĠKin Transaction . Record Type . In Flight ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). sign Transaction ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbuild And Sign Transaction _ success _ with _ memo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAA Ac Fj Or 5 G ik 6 y ix N 3 q tag N gm um IJ R hf ux HN 6 YE / o AP qf Oe IF K Hl Ah W fx 9 cm 1 Fd Vt WD Van 2 c Y py 7 f sc 8 SW 1 D 1 6 U MA g AC Be 8 oot 1 gd F zu 7 PD 9 F Va 1 d 7 q Vw J MM a A 9 e H CY wd UX n QV th Xc X 6 W 5 Rx / U xd W FA 1 U zm GZ g U AY 7 y HY M vn C / is Ic IY 7 / sh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og Lw bd 9 u HX Za GT 2 cv h Rs 7 re aw ct IX t X 1 s 3 k T q M 9 Y V +/ w Cp B Up T UP h dy IL W FK VW cn i KK W 3 f Hq ur 0 KY Ge Ih J Mv Tu 9 q AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAAA IE AC x R UV FB Qk Fn TU FB QU FB QU FB QU FB QU FB QU FB QU FB QU FB QU FB QU FB QU FB QU FB PQ MD AQ IB C QP g rr s AAAA AAA ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsource Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from Secret Seed (" SD FD PC 5 VK 7 FS FD H 4 Q 3 C QP Q RA 4 OP F XY M 6 C FR XV Q OA 7 6 7 OG XF Y BE DE Q G MF ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Status ( Kin Account . Status . Registered ( 1 6 5 7 6 2 5 0 1 8 5 2 5 2 8 6 4 )) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") ĊĊĠĠĠĠĠĠĠ Ġsut . build And Sign Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key . as PublicKey (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Kin Payment Item ( Kin Amount ( 1 2 3 ), Ġdestination Account . id )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Binary Memo . Builder ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ForeignKey ( byte ArrayOf ( 1 , 2 , 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tran fer Type ( Kin Binary Memo . Transfer Type . S pend ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Kin Memo (), ĊĠĠĠĠĠĠĠ Ġ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Base 6 4 . encode Base 6 4 String ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( expected . bytes Value . content Equals ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( value . record Type Ġis ĠKin Transaction . Record Type . In Flight ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). sign Transaction ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbuild And Sign Transaction _ success _ with _ ag ora Memo _ and In voices () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from Secret Seed (" SD FD PC 5 VK 7 FS FD H 4 Q 3 C QP Q RA 4 OP F XY M 6 C FR XV Q OA 7 6 7 OG XF Y BE DE Q G MF ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Status ( Kin Account . Status . Registered ( 1 6 5 7 6 2 5 0 1 8 5 2 5 2 8 6 4 )) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Account Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Memo Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Memo ( Base 6 4 (). decode (" QQ A At PJ bea 1 Ask 4 z S + JH dc 2 BV zn FY ve 1 NA Z sh Gi 1 Pw I =") !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Kin App Idx Ġ= ĠApp Idx . TEST _ APP _ IDX ĊĠĠĠĠĠĠĠ Ġval Ġinvoice Ġ= ĠInvoice . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine Item . Builder (" thing 1 ", ĠKin Amount ( 1 2 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġinvoice List Ġ= ĠInvoice List . Builder (). add Invoice ( invoice ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD Bh Kb pl KY V Fe 1 zp 0 Q bm 0 sg mf DJ / 4 Pa KI 6 sd h W 5 K 2 h Ya 3 y Tx Ba 4 f Jz / K cl Oz YQ nut ToS 8 NC c gt E 1 Zm 4 3 Vj EE o 8 L Ag AC Be 8 oot 1 gd F zu 7 PD 9 F Va 1 d 7 q Vw J MM a A 9 e H CY wd UX n QV th Xc X 6 W 5 Rx / U xd W FA 1 U zm GZ g U AY 7 y HY M vn C / is Ic IY 7 / sh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og Lw bd 9 u HX Za GT 2 cv h Rs 7 re aw ct IX t X 1 s 3 k T q M 9 Y V +/ w Cp B Up T UP h dy IL W FK VW cn i KK W 3 f Hq ur 0 KY Ge Ih J Mv Tu 9 q AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAAA IE AC x R UU FB d FB KY mV h MU Fz az R 6 U yt KS GR j Mk JW em 5 G WX Zl MU 5 BW n No R 2 kx U Hd JP Q MD AQ IB C QP g rr s AAAA AAA ==", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List Ġ= Ġinvoice List ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġsut . build And Sign Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key Ġas ĠKey . PrivateKey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key . as PublicKey (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Kin Payment Item ( Kin Amount ( 1 2 3 ), Ġdestination Account . id , ĠOptional . of ( invoice ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Binary Memo . Builder ( destination Kin App Idx . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ForeignKey ( invoice List . id . invoice Hash . decode ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tran fer Type ( Kin Binary Memo . Transfer Type . S pend ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Kin Memo (), ĊĠĠĠĠĠĠĠ Ġ). test ( timeout Ġ= Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Base 6 4 . encode Base 6 4 String ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( expected . bytes Value . content Equals ( value . bytes Value )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( value . record Type Ġis ĠKin Transaction . Record Type . In Flight ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected Memo , Ġvalue . memo ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( invoice , Ġvalue . as Kin Payments (). first (). invoice ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). sign Transaction ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ ĠThese Ġtests Ġmay Ġnot Ġbe Ġrelevant Ġanymore Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġbuild And Sign Transaction _ account _ null () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġsource Account Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Status ( Kin Account . Status . Registered ( 1 6 5 7 6 2 5 0 1 8 5 2 5 2 8 6 4 )) Ċ // ĠĠĠĠĠĠĠ Ġval Ġdestination Account Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") Ċ // Ċ // ĠĠĠĠĠĠĠ Ġsut . build And Sign Transaction ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key Ġas ĠKey . PrivateKey , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key . as PublicKey (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( source Account . status Ġas ĠKin Account . Status . Registered ). sequence , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Kin Payment Item ( Kin Amount ( 1 2 3 ), Ġdestination Account . id )), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠKin Memo . NONE , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠQu ark Amount ( 1 0 0 ) Ċ // ĠĠĠĠĠĠĠ Ġ). test ( timeout Ġ= Ġ 1 0 0 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Illegal Request ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), Ġany ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), Ġany ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġbuild And Sign Transaction _ source _ ac ount _ not _ el igible _ for _ signing () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġsource Account Ġ= ĠTestUtils . new Kin Account () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Status ( Kin Account . Status . Registered ( 1 6 5 7 6 2 5 0 1 8 5 2 5 2 8 6 4 )) Ċ // ĠĠĠĠĠĠĠ Ġval Ġdestination Account Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . from AccountId (" GA QQ OL V JB 3 5 BI UZ MAR HI 7 5 O YL IS 7 N WF Z OB V 3 C 7 YQ 3 7 CT 3 RV X RI QC 6 CX N ") Ċ // Ċ // ĠĠĠĠĠĠĠ Ġsut . build And Sign Transaction ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key Ġas ĠKey . PrivateKey , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsource Account . key . as PublicKey (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ( source Account . status Ġas ĠKin Account . Status . Registered ). sequence , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Kin Payment Item ( Kin Amount ( 1 2 3 ), Ġdestination Account . id )), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠKin Memo . NONE , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠQu ark Amount ( 1 0 0 ) Ċ // ĠĠĠĠĠĠĠ Ġ). test Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġerror Ġis ĠKin Service . Fatal Error . Illegal Request Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). get Recent Block Hash ( any (), Ġany ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ). getService Config ( any (), Ġany ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Base 6 4 String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . encode Base 6 4 String ( signed Transaction . bytes Value ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction Base 6 4 String , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . Ack nowled ged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexpected . bytes Value . content Equals ( value . bytes Value ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ with Invoice _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvoice List Ġ= ĠInvoice List . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Invoice ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine Item . Builder (" title ", ĠKin Amount ( 1 2 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List Ġ= Ġinvoice List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Base 6 4 String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . encode Base 6 4 String ( signed Transaction . bytes Value ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . un marshal ( signed Transaction . bytes Value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction Base 6 4 String , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . Ack nowled ged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List Ġ= Ġinvoice List ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test ( timeout Ġ= Ġ 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexpected . bytes Value . content Equals ( value . bytes Value ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice List . invoices . first (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . as Kin Payments (). first (). invoice ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ wh itelisted _ success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Base 6 4 String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . encode Base 6 4 String ( signed Transaction . bytes Value ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction Base 6 4 String , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . Ack nowled ged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġdo Answer Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ċ // ĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Wh itel isting Api ). is Wh itel isting Available Ċ // Ċ // ĠĠĠĠĠĠĠ Ġdo Answer Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback : Ġ( Kin Transaction Wh itel isting Api V 4 . Whitelist Transaction Response ) Ġ-> ĠUnit Ġ= Ġit . get Argument ( 1 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Wh itel isting Api V 4 . Whitelist Transaction Response ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Wh itel isting Api V 4 . Whitelist Transaction Response . Result . Ok , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction Base 6 4 String Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Wh itel isting Api ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. whitelist Transaction ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( Kin Transaction Wh itel isting Api V 4 . Whitelist Transaction Request ( signed Transaction Base 6 4 String )), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexpected . bytes Value . content Equals ( value . bytes Value ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ wh itel isting Failed _ so Pass Through () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Base 6 4 String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . encode Base 6 4 String ( signed Transaction . bytes Value ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠTestUtils . kin Transaction From X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigned Transaction Base 6 4 String , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . Ack nowled ged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . ResultCode . Success ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexpected . bytes Value . content Equals ( value . bytes Value ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ bad _ sequence _ number () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Bad SequenceNumber ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Bad Block hash In Request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ ins ufficient _ fee () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ins ufficient Fee ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Ins ufficient Fee In Request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ ins ufficient _ balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Ins ufficient Balance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Ins ufficient Balance For Source Account In Request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ no _ account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . No Account ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unknown Account In Request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ transient _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Transient Failure ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Transient Failure ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ undef in ied _ failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Undefined Error ( Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . Unexpected Service Error ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ SDK Upgrade Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Transaction Ġ= ĠTestUtils . kin Transaction From Sol ana Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ag AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAA AD B 4 O sv LL 0 IB Y sz d / Y 1 5 PR Q 7 SE 2 CR a ok C mo JK hj SK mo P PH d DX 2 a Q GS we WQ Tr wo K av F cz m 0 x 1 0 JR j 2 ta e J HV a 6 8 B Ag ABB bg J qw X w ve HK zf Q Dc DY 4 IG T DD w Jq / F ur r Mj Sx SC 0 0 a VV En E 1 mq ib ex Z 5 dr QR l PT v Q JH cj Dl + 2 / PY mq KS i Kn P BT wh By 6 pD vo UU yw E To / 1 2 F ol 9 ti 5 c G ux fx D fx T 3 Gt 4 og L 1 3 F + lu U cf 1 MX Vh QN VM 5 hm Y F AG O 8 h 2 DL 5 wv 4 r CH C GO / 7 Bt 3 2 4 dd lo ZP Zy + FG z ut 5 r By 0 he 1 fW ze RO oz 1 h X 7 / AK k AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAAAAAA AAA EE Aw M CA Qk D 4 K 6 7 AAAA AAA =", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction . Record Type . In Flight ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsubmit Transaction Request Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( Transaction . un marshal ( signed Transaction . bytes Value )) ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Argument <( Kin Transaction Api V 4 . Submit Transaction Response ) Ġ-> ĠUnit >( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Response . Result . Upgrade Required Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġsut . submit Transaction ( signed Transaction ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( error Ġis ĠKin Service . Fatal Error . SDK Upgrade Required ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit Transaction ( eq ( submit Transaction Request ), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( mock Transaction Api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Zero Interactions ( mock Account Api ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubmit Transaction _ equality () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest 1 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . un marshal ( h istorical Kin Transaction . bytes Value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice List . Builder (). add Invoice ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine Item . Builder (" a Title ", ĠKin Amount ( 1 2 3 )). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . un marshal ( h istorical Kin Transaction . bytes Value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice List . Builder (). add Invoice ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine Item . Builder (" a Title ", ĠKin Amount ( 1 2 3 )). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest 3 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKin Transaction Api V 4 . Submit Transaction Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . un marshal ( h istorical Kin Transaction . bytes Value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice List . Builder (). add Invoice ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvoice . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLine Item . Builder (" a Title 2 ", ĠKin Amount ( 4 5 6 )). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( request 1 , Ġrequest 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( request 1 . hashCode (), Ġrequest 2 . hashCode ()) ĊĠĠĠĠĠĠĠ Ġkotlin . test . assertNot Equals ( request 1 , Ġrequest 3 ) ĊĠĠĠĠĠĠĠ Ġkotlin . test . assertNot Equals ( request 1 . hashCode (), Ġrequest 3 . hashCode ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Stream Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠTestUtils . new Kin Account () ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= ĠValue Subject < Kin Account >() ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserver ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Streaming Api ). stream Account ( eq ( account . id )) ĊĊĠĠĠĠĠĠĠ Ġobserver . onNext ( account ) ĊĊĠĠĠĠĠĠĠ Ġsut . stream Account ( account . id ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( account , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Stream Transactions () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠTestUtils . new Kin Account () ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= ĠValue Subject < Kin Transaction >() ĊĊĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserver ĊĠĠĠĠĠĠĠ Ġ}. wh enever ( mock Streaming Api ). stream New Transactions ( eq ( account . id )) ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġmutable ListOf < Kin Transaction >() ĊĠĠĠĠĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 2 ) ĊĠĠĠĠĠĠĠ Ġsut . stream New Transactions ( account . id ). add Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġobserver . onNext ( h istorical Kin Transaction ) ĊĠĠĠĠĠĠĠ Ġobserver . onNext ( h istorical Kin Transaction 2 ) ĊĠĠĠĠĠĠĠ Ġl atch . await ( 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( h istorical Kin Transaction , Ġhistorical Kin Transaction 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ