package Ġno . nav . hel se . inn tek ts meld ings var sel . var sl ing Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . Kotlin Module Ċ import Ġcom . zaxxer . hikari . Hikari DataSource Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġno . nav . hel se . ar be id sg iver . integr as jon er . p dl . P dl Client Ċ import Ġno . nav . hel se . ar be id sg iver . integr as jon er . p dl . P dl H ent Person Nav n Ċ import Ġno . nav . hel se . ar be id sg iver . integr as jon er . p dl . P dl Person Nav n Metadata Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . Allow List Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . Pilot Allow List Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . dom ene . var sl ing . repository . Vent ende Be handling er Repository Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . dom ene . var sl ing . repository . Var sl ing Repository Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . var sl ing . mot tak . Sp le isIn n tek ts meld ing Mel ding Ċ import Ġno . nav . hel se . inn tek ts meld ings var sel . var sl ing . mot tak . Sp le isIn n tek ts meld ing Mel ding . Mel ding stype . T REN GER _ IK KE _ IN N TE K TS ME LD ING Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ Ċ internal Ġclass ĠVar sl ing Service Test Ġ{ ĊĠĠĠ Ġval Ġallow Mock Ġ= Ġmock k < Pilot Allow List >() ĊĠĠĠ Ġval Ġvar sel Repo Ġ= Ġmock k < Var sl ing Repository >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġval Ġvent ende Repo Mock Ġ= Ġmock k < Vent ende Be handling er Repository >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġval Ġalt inn Var sel Mapper Mock Ġ= Ġmock k < Var sl ing Mapper >() ĊĠĠĠ Ġval Ġdatasource Mock Ġ= Ġmock k < Hikari DataSource >( relax ed Ġ= Ġtrue ) ĊĊĠĠĠ Ġval Ġp dl Client Mock Ġ= Ġmock k < P dl Client >() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġperson Nav n ( any ()) Ġ} Ġreturns ĠP dl H ent Person Nav n . P dl Person Nav nel iste ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP dl H ent Person Nav n . P dl Person Nav nel iste . P dl Person Nav n ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Nav n ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Nav nes en ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= ĠP dl Person Nav n Metadata (" F REG ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠobjectMapper Ġ= ĠObjectMapper (). register Module ( Kotlin Module ()). register Module ( Java Time Module ()) ĊĊĠĠĠ Ġval Ġservice UnderTest Ġ= ĠVar sl ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatasource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar sel Repo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvent ende Repo Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalt inn Var sel Mapper Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp dl Client Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġallow Mock ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmsg _ m ang ler Ġ= ĠSp le isIn n tek ts meld ing Mel ding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 4 5 6 7 8 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . now (). plus Days ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` In nk om men de Ġme ld inger Ġf ra ĠSp le is Ġb lir Ġlag ret Ġi Ġvent ende Ġtabel len `() Ġ{ ĊĠĠĠĠĠĠĠ Ġservice UnderTest . handle Message ( object Mapper . writeValue AsString ( msg _ m ang ler )) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġvent ende Repo Mock . insert IfNot Exists ( msg _ m ang ler . f Ã¸ d se ls nummer , Ġmsg _ m ang ler . organ is as j ons nummer , Ġmsg _ m ang ler . f om , Ġmsg _ m ang ler . tom , Ġmsg _ m ang ler . op prett et ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġvar sel Repo . insert ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Mel ding Ġom Ġat Ġman Ġik ke Ġl enger Ġm ang ler ĠIM Ġf jer ner Ġvent ende Ġme ld ing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt ren ger Ik ke Ġ= Ġmsg _ m ang ler . copy ( type Ġ= ĠT REN GER _ IK KE _ IN N TE K TS ME LD ING ) ĊĠĠĠĠĠĠĠ Ġservice UnderTest . handle Message ( object Mapper . writeValue AsString ( t ren ger Ik ke )) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġvent ende Repo Mock . remove ( t ren ger Ik ke . f Ã¸ d se ls nummer , Ġt ren ger Ik ke . organ is as j ons nummer , Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġvent ende Repo Mock . insert IfNot Exists ( msg _ m ang ler . f Ã¸ d se ls nummer , Ġmsg _ m ang ler . organ is as j ons nummer , Ġmsg _ m ang ler . f om , Ġmsg _ m ang ler . tom , Ġmsg _ m ang ler . op prett et ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġvar sel Repo . insert ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Opp ret ter Ġik ke Ġvars ler Ġog Ġf jer ner Ġvent ende Ġme ld ing Ġved Ġorg - nummer Ġsom Ġik ke Ġer Ġi Ġallow Ġlist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġallow Mock . is Allowed ( msg _ m ang ler . organ is as j ons nummer ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvent ende Repo Mock . find Ol der Than ( any ()) Ġ} Ġreturns Ġset Of ( msg _ m ang ler ) ĊĊĠĠĠĠĠĠĠ Ġservice UnderTest . op prett Var sl inger F ra Vent ende Mel ding er () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġallow Mock . is Allowed ( msg _ m ang ler . organ is as j ons nummer ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġvent ende Repo Mock . remove ( msg _ m ang ler . f Ã¸ d se ls nummer , Ġmsg _ m ang ler . organ is as j ons nummer , Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġvar sel Repo . insert ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} Ċ }