package Ġapplication . queries Ċ Ċ import Ġapplication . d tos . account . Account Transaction Dto Ċ import Ġapplication . to Currency Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġdomain . Transaction Status Ċ import Ġdomain . transaction . Transaction Info Ċ import Ġdomain . transaction . Transaction Info Repository Ċ import Ġdomain . transaction . Transaction Type Ċ import Ġdomain . transfer . Money Transfer Ċ import Ġdomain . transfer . Money Transfer Repository Ċ import Ġorg . hamcrest . Core Matchers .* Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . junit . Test Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . util .* Ċ Ċ class ĠTransaction Queries UnitTest Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpassed Ġaccount Ġid Ġshould Ġreturn Ġall Ġaccount Ġtransactions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġfake AccountId Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġval Ġfake Transfer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMoney Transfer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . randomUUID (), Ġfake AccountId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 . to BigDecimal (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" EUR ". to Currency (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction Status . COMPLETED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransaction 1 Ġ= ĠTransaction Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake AccountId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Transfer . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 . to BigDecimal (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" EUR ". to Currency (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction Type . CRED IT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction 2 Ġ= ĠTransaction Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake AccountId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Transfer . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 . to BigDecimal (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" EUR ". to Currency (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction Type . DE BIT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransaction Info Repository Ġ= Ġmock < Transaction Info Repository > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ ĠgetAll () Ġ} Ġdo Return ĠlistOf ( transaction 1 , Ġtransaction 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtransfer Repository Ġ= Ġmock < Money Transfer Repository > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget ById ( fake Transfer . id ) Ġ} Ġdo Return Ġfake Transfer ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Queries Ġ= ĠTransaction Queries ( transaction Info Repository , Ġtransfer Repository ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtransaction Queries . get Transactions By AccountId ( fake AccountId ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result , Ġhas Item ( instance Of ( Account Transaction Dto :: class . java ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . size , ĠequalTo ( 2 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( result [ 0 ]. amount , ĠequalTo ( BigDecimal ( 1 0 0 ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( result [ 1 ]. amount , ĠequalTo ( BigDecimal ( 5 0 ). neg ate ())) ĊĠĠĠ Ġ} Ċ }