package Ġio . ple o . ant ae us . core . services Ċ Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . ple o . ant ae us . core . exceptions . Invoice NotFoundException Ċ import Ġio . ple o . ant ae us . data . Ant ae us Dal Ċ import Ġio . ple o . ant ae us . models . Currency Ċ import Ġio . ple o . ant ae us . models . Invoice Ċ import Ġio . ple o . ant ae us . models . Invoice Status Ċ import Ġio . ple o . ant ae us . models . Money Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . math . BigDecimal Ċ Ċ class ĠInvoice Service Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġinvoice 1 Ġ= ĠInvoice ( ĊĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠ ĠMoney ( BigDecimal ( 1 0 0 ), ĠCurrency . EUR ), ĊĠĠĠĠĠĠĠ ĠInvoice Status . PENDING ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġdal Ġ= Ġmock k < Ant ae us Dal > Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġfetch Invoice ( 4 0 4 ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġfetch In voices ( Invoice Status . PENDING ) Ġ} Ġreturns ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġupdate Invoice ( 4 0 4 , ĠInvoice Status . PA ID ) Ġ} Ġreturns Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinvoice Service Ġ= ĠInvoice Service ( dal Ġ= Ġdal ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fetch Ġwill Ġthrow Ġif Ġinvoice Ġis Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < Invoice NotFoundException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice Service . fetch ( 4 0 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġwill Ġthrow Ġif Ġinvoice Ġis Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < Invoice NotFoundException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoice Service . update ( 4 0 4 , ĠInvoice Status . PA ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġreturn Ġexpected Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġinvoice Service . fetch All ( Invoice Status . PENDING ) ĊĠĠĠĠĠĠĠ Ġassert ( result Ġ== ĠlistOf ( invoice 1 )) ĊĠĠĠ Ġ} Ċ } Ċ