package Ġno . nav . f amil ie . ef . mot tak . task Ċ Ċ import Ġio . mock k . called Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġno . nav . f amil ie . ef . mot tak . encryption . Encrypted String Ċ import Ġno . nav . f amil ie . ef . mot tak . feature toggle . Feature Toggle Service Ċ import Ġno . nav . f amil ie . ef . mot tak . repository . domain . S Ã¸ kn ad Ċ import Ġno . nav . f amil ie . ef . mot tak . service . D itt Nav Kafka Producer Ċ import Ġno . nav . f amil ie . ef . mot tak . service . S Ã¸ kn ad Service Ċ import Ġno . nav . f amil ie . kon tr ak ter . ef . s Ã¸ kn ad . D okument Ċ import Ġno . nav . f amil ie . kon tr ak ter . ef . s Ã¸ kn ad . D okument as j ons be h ov Ċ import Ġno . nav . f amil ie . kon tr ak ter . ef . s Ã¸ kn ad . S Ã¸ kn ad Type Ċ import Ġno . nav . f amil ie . kon tr ak ter . ef . s Ã¸ kn ad . d okument as j ons be h ov . D okument as j ons be h ov Dto Ċ import Ġno . nav . f amil ie . pro sess ering . dom ene . Task Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . net . URL Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util . Properties Ċ import Ġjava . util . UUID Ċ Ċ internal Ġclass ĠSend D okument as j ons be h ov Mel ding Til D itt Nav Task Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task : ĠSend D okument as j ons be h ov Mel ding Til D itt Nav Task ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd itt Nav Kafka Producer : ĠD itt Nav Kafka Producer ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġs Ã¸ kn ad Service : ĠS Ã¸ kn ad Service ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfeature Toggle Service : ĠFeature Toggle Service ĊĊĠĠĠ Ġprivate Ġval Ġproperties Ġ= ĠProperties (). apply Ġ{ Ġthis [" eventId "] Ġ= ĠUUID . fromString ( EVENT _ ID ) Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġinternal Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġfeature Toggle Service Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend D okument as j ons be h ov Mel ding Til D itt Nav Task ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock k ( relax ed Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Toggle Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` over gang sst Ã¸ nad Ġri kt ige Ġinter gas jon er `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock S Ã¸ kn ad () ĊĊĠĠĠĠĠĠĠ Ġval Ġdokument as j ons Be h ov Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( D okument as j ons be h ov (" D itt ĠNav Ġk all ĠmÃ¥ Ġha Ġdokument as j ons Be h ov ", Ġ" id ", Ġfalse , ĠlistOf ())) ĊĠĠĠĠĠĠĠ Ġmock D okument as j ons be h ov ( d okument as j ons Be h ov , ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD ) ĊĊĠĠĠĠĠĠĠ Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task . do Task ( Task ("", ĠS Ã ĺ KN AD _ ID , Ġproperties )) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service . get ( any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service . h ent D okument as j ons be h ov For S Ã¸ kn ad ( any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer . send To Kafka ( FN R , Ġany (), Ġany (), ĠEVENT _ ID , Ġis Null ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` over gang sst Ã¸ nad Ġ- Ġut en Ġdokument as j ons be h ov Ġskal Ġik ke Ġk alle Ġsend To Kafka `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock S Ã¸ kn ad () ĊĠĠĠĠĠĠĠ Ġmock D okument as j ons be h ov ( emptyList (), ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD ) ĊĠĠĠĠĠĠĠ Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task . do Task ( Task ("", ĠS Ã ĺ KN AD _ ID , Ġproperties )) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer Ġwas Not Ġcalled ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` over gang sst Ã¸ nad Ġ- Ġhar Ġall ere de Ġsend t Ġinn `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Og Ver if iser Mel ding ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( D okument as j ons be h ov ("", Ġ"", Ġtrue , Ġempty List ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Vi Ġhar Ġmot t att Ġs Ã¸ kn aden Ġdin Ġom Ġover gang sst Ã¸ nad . ĠSe Ġved leg gene Ġdu Ġlast et Ġopp ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` over gang sst Ã¸ nad Ġ- Ġm ang ler Ġved leg g `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Og Ver if iser Mel ding ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( D okument as j ons be h ov ("", Ġ"", Ġfalse , Ġempty List ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Det Ġser Ġut Ġtil Ġat Ġdet Ġm ang ler Ġno en Ġved leg g Ġtil Ġs Ã¸ kn aden Ġdin Ġom Ġover gang sst Ã¸ nad . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Se Ġh va Ġsom Ġm ang ler Ġog Ġlast Ġopp Ġved leg g ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` over gang sst Ã¸ nad Ġ- Ġhar Ġsend t Ġinn Ġved leg g `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Og Ver if iser Mel ding ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( D okument as j ons be h ov ("", Ġ"", Ġfalse , ĠlistOf ( D okument ("", Ġ" fil . pdf ")) )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Vi Ġhar Ġmot t att Ġs Ã¸ kn aden Ġdin Ġom Ġover gang sst Ã¸ nad . ĠSe Ġved leg gene Ġdu Ġlast et Ġopp ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` ar be id ss Ã¸ ker Ġskal Ġik ke Ġs ende Ġme ld ing Ġtil Ġd itt Ġnav `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock S Ã¸ kn ad ( s Ã¸ kn ad Type Ġ= ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD _ AR BE ID SS Ã ĺ KER ) ĊĊĠĠĠĠĠĠĠ Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task . do Task ( Task ("", ĠS Ã ĺ KN AD _ ID , Ġproperties )) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service . get ( any ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Service . h ent D okument as j ons be h ov For S Ã¸ kn ad ( any ()) Ġwas Not Ġcalled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer Ġwas Not Ġcalled ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Og Ver if iser Mel ding ( ĊĠĠĠĠĠĠĠ Ġdokument as j ons be h ov : ĠList < D okument as j ons be h ov >, ĊĠĠĠĠĠĠĠ Ġfor vent et Mel ding : ĠString , ĊĠĠĠĠĠĠĠ Ġlink : ĠURL ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmock S Ã¸ kn ad () ĊĠĠĠĠĠĠĠ Ġmock D okument as j ons be h ov ( d okument as j ons be h ov , ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD ) ĊĊĠĠĠĠĠĠĠ Ġsend D okument as j ons be h ov Mel ding Til D itt Nav Task . do Task ( Task ("", ĠS Ã ĺ KN AD _ ID , Ġproperties )) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd itt Nav Kafka Producer . send To Kafka ( eq ( FN R ), Ġeq ( for vent et Mel ding ), Ġany (), Ġeq ( EVENT _ ID ), Ġlink Ġ?: Ġany ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock D okument as j ons be h ov ( ĊĠĠĠĠĠĠĠ Ġdokument as j ons be h ov : ĠList < D okument as j ons be h ov > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Type : ĠS Ã¸ kn ad Type ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s Ã¸ kn ad Type Ġ== ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD _ AR BE ID SS Ã ĺ KER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" L agr er Ġal d ri Ġdokument as j ons be h ov Ġtil Ġar be id ss Ã¸ ker ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġs Ã¸ kn ad Service . h ent D okument as j ons be h ov For S Ã¸ kn ad ( UUID . fromString ( S Ã ĺ KN AD _ ID )) Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD okument as j ons be h ov Dto ( d okument as j ons be h ov , ĠLocalDateTime . now (), Ġs Ã¸ kn ad Type , ĠF NR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock S Ã¸ kn ad ( s Ã¸ kn ad Type : ĠS Ã¸ kn ad Type Ġ= ĠS Ã¸ kn ad Type . OVER G ANG S ST Ã ĺ N AD ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġs Ã¸ kn ad Service . get ( S Ã ĺ KN AD _ ID ) Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS Ã¸ kn ad ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠS Ã ĺ KN AD _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kn ad Json Ġ= ĠEn crypted String (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdokument type Ġ= Ġs Ã¸ kn ad Type . d okument Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfn r Ġ= ĠF NR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS Ã ĺ KN AD _ ID Ġ= Ġ" e 8 7 0 3 be 6 - eb 4 7 - 4 7 6 a - ae 5 2 - 0 9 6 df 4 7 4 3 0 d 6 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEVENT _ ID Ġ= Ġ" e 8 7 0 3 be 6 - eb 4 7 - 4 7 6 a - ae 5 2 - 0 9 6 df 4 7 4 3 0 d 7 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠF NR Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 1 " ĊĠĠĠ Ġ} Ċ } Ċ