package Ġno . nav . fo . ve ilar bre gist r ering . op pg ave Ċ Ċ import Ġio . mock k . Called Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġno . nav . fo . ve ilar bre gist r ering . br uk er . A ktor Id Ċ import Ġno . nav . fo . ve ilar bre gist r ering . br uk er . B ru ker Ċ import Ġno . nav . fo . ve ilar bre gist r ering . br uk er . Fo ed se ls nummer Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ Ċ class ĠO pp g ave Service Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġopp g ave Service : ĠO pp g ave Service ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġopp g ave Gateway : ĠO pp g ave Gateway ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġopp g ave Repository : ĠO pp g ave Repository ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġopp g ave Router : ĠO pp g ave Router ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġopp g ave Gateway Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġopp g ave Repository Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġopp g ave Router Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġopp g ave Service Ġ= ĠCustom Opp g ave Service ( op pg ave Gateway , Ġopp g ave Repository , Ġopp g ave Router ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` op prett Opp g ave Ġang Ġopp hold Ġskal Ġgi Ġbes k riv else Ġom Ġr utine `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE ) ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Ġ= ĠO pp g ave . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER . ak tor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Gateway . op prett ( op pg ave ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` op prett Opp g ave Ġang Ġdod Ġut v and ret Ġskal Ġgi Ġbes k riv else Ġom Ġr utine `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . UT V AND RET ) ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Ġ= ĠO pp g ave . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER . ak tor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠO pp g ave Type . UT V AND RET , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Gateway . op prett ( op pg ave ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġlag re Ġopp g ave Ġved Ġvel ly kk et Ġopp rett else Ġav Ġopp g ave `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Repository . op prett Opp g ave ( BR UK ER . ak tor Id , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , Ġ 2 3 4 L ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġk aste Ġexception Ġd ers om Ġdet Ġfin nes Ġny ere Ġopp hold sop pg ave Ġf ra Ġfor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave S om B le Opp rett et D agen For Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp g ave Impl ( 2 3 , ĠBR UK ER . ak tor Id , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , Ġ 2 3 , ĠLocalDateTime . of ( 2 0 2 0 , Ġ 4 , Ġ 9 , Ġ 2 2 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġopp ga ver Ġ= ĠlistOf ( op pg ave S om B le Opp rett et D agen For ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Repository . h ent Opp ga ver For ( any ()) Ġ} Ġreturns Ġopp ga ver ĊĠĠĠĠĠĠĠ ĠAssertions . assert Throws ( Opp g ave All ere de Opp rett et :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO pp g ave Type . OP PH OLD ST IL LATE L SE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġopp g ave Gateway Ġwas Not ĠCalled Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġk aste Ġexception Ġd ers om Ġdet Ġfin nes Ġny ere Ġut v andre to pp g ave Ġf ra Ġfor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave S om B le Opp rett et D agen For Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp g ave Impl ( 2 3 , ĠBR UK ER . ak tor Id , ĠO pp g ave Type . UT V AND RET , Ġ 2 3 , ĠLocalDateTime . of ( 2 0 2 0 , Ġ 4 , Ġ 9 , Ġ 2 2 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġopp ga ver Ġ= ĠlistOf ( op pg ave S om B le Opp rett et D agen For ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Repository . h ent Opp ga ver For ( any ()) Ġ} Ġreturns Ġopp ga ver ĊĠĠĠĠĠĠĠ ĠAssertions . assert Throws ( Opp g ave All ere de Opp rett et :: class . java ) Ġ{ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . UT V AND RET ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġopp g ave Gateway Ġwas Not ĠCalled Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġik ke Ġk aste Ġexception Ġd ers om Ġdet Ġfin nes Ġel d re Ġopp g ave Ġf ra Ġfor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave S om B le Opp rett et Tre D ager For Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp g ave Impl ( 2 3 , ĠBR UK ER . ak tor Id , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , Ġ 2 3 , ĠLocalDateTime . of ( 2 0 2 0 , Ġ 3 , Ġ 1 0 , Ġ 2 2 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġopp ga ver Ġ= ĠlistOf ( op pg ave S om B le Opp rett et Tre D ager For ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Repository . h ent Opp ga ver For ( any ()) Ġ} Ġreturns Ġopp ga ver ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE ) ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Ġ= ĠO pp g ave . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER . ak tor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Gateway . op prett ( op pg ave ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ingen Ġtid lig ere Ġopp ga ver `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Repository . h ent Opp ga ver For ( any ()) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE ) ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Ġ= ĠO pp g ave . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER . ak tor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Gateway . op prett ( op pg ave ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġik ke Ġk aste Ġexception Ġd ers om Ġdet Ġfin nes Ġopp g ave Ġav Ġan nen Ġtype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Router . h ent En hets nummer For ( BR UK ER ) Ġ} Ġreturns ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave S om B le Opp rett et En D ager For Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp g ave Impl ( 2 3 , ĠBR UK ER . ak tor Id , ĠO pp g ave Type . OP PH OLD ST IL LATE L SE , Ġ 2 3 , ĠLocalDateTime . of ( 2 0 2 0 , Ġ 4 , Ġ 9 , Ġ 2 2 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġopp ga ver Ġ= ĠlistOf ( op pg ave S om B le Opp rett et En D ager For ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Repository . h ent Opp ga ver For ( any ()) Ġ} Ġreturns Ġopp ga ver ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġopp g ave Gateway . op prett ( any ()) Ġ} Ġreturns ĠDummy Opp g ave Response () ĊĠĠĠĠĠĠĠ Ġopp g ave Service . op prett Opp g ave ( BR UK ER , ĠO pp g ave Type . UT V AND RET ) ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Ġ= ĠO pp g ave . op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBR UK ER . ak tor Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠO pp g ave Type . UT V AND RET , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġopp g ave Gateway . op prett ( op pg ave ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠDummy Opp g ave Response Ġ: ĠO pp g ave Response Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠLong Ġ= Ġ 2 3 4 L ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtil delt En hets nr : ĠString Ġ= Ġ" 0 3 9 3 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠCustom Opp g ave Service ( ĊĠĠĠĠĠĠĠ Ġopp g ave Gateway : ĠO pp g ave Gateway , ĊĠĠĠĠĠĠĠ Ġopp g ave Repository : ĠO pp g ave Repository , ĊĠĠĠĠĠĠĠ Ġopp g ave Router : ĠO pp g ave Router , ĊĠĠĠ Ġ) Ġ: ĠO pp g ave Service ( ĊĠĠĠĠĠĠĠ Ġopp g ave Gateway , ĊĠĠĠĠĠĠĠ Ġopp g ave Repository , ĊĠĠĠĠĠĠĠ Ġopp g ave Router , ĊĠĠĠĠĠĠĠ Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġid ag (): ĠLocalDate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLocalDate . of ( 2 0 2 0 , Ġ 4 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBR UK ER Ġ= ĠB ru ker . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF o ed se ls nummer . of (" 1 2 3 4 5 6 7 8 9 1 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ktor Id (" 2 1 3 4 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }