package Ġno . nav . hel se . hen del ser Ċ Ċ import Ġno . nav . hel se . person . A ktiv it ets log g Ċ import Ġno . nav . hel se . sy k dom st ids lin je . Dag .* Ċ import Ġno . nav . hel se . test helpers . jan uar Ċ import Ġno . nav . hel se . test helpers . j uli Ċ import Ġno . nav . hel se . Ã¸ k onom i . Pro sent del . Companion . pro sent Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ Ċ internal Ġclass ĠS yk meld ing Test Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUN G _ PERSON _ FN R _ 2 0 1 8 Ġ= Ġ" 1 2 0 2 0 0 5 2 3 4 5 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsy k meld ing : ĠS yk meld ing ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sy k dom s grad Ġsom Ġer Ġ 1 0 0 Ġpro sent Ġst Ã¸ t tes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsy k meld ing ( Sy k meld ing sp eri ode ( 1 . jan uar , Ġ 1 0 . jan uar , Ġ 1 0 0 . pro sent ), ĠS yk meld ing sp eri ode ( 1 2 . jan uar , Ġ 1 6 . jan uar , Ġ 1 0 0 . pro sent )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 8 Ġ+ Ġ 3 , Ġsy k meld ing . sy k dom st ids lin je (). filter Is Instance < Sy ked ag >(). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġsy k meld ing . sy k dom st ids lin je (). filter Is Instance < Sy k Hel ged ag >(). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsy k meld ing . sy k dom st ids lin je (). filter Is Instance < U kj ent Dag >(). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sy k dom s grad Ġunder Ġ 1 0 0 Ġpro sent Ġst Ã¸ t tes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsy k meld ing ( Sy k meld ing sp eri ode ( 1 . jan uar , Ġ 1 0 . jan uar , Ġ 5 0 . pro sent ), ĠS yk meld ing sp eri ode ( 1 2 . jan uar , Ġ 1 6 . jan uar , Ġ 1 0 0 . pro sent )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( sy k meld ing . valid er ( Per i ode ( 1 . jan uar , Ġ 3 1 . jan uar )). has Errors Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sy ke period er Ġm ang ler `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < A ktiv it ets log g . A ktiv itet Exception > Ġ{ Ġsy k meld ing () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` over l app ende Ġsy ke period er `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < A ktiv it ets log g . A ktiv itet Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy k meld ing ( Sy k meld ing sp eri ode ( 1 0 . jan uar , Ġ 1 2 . jan uar , Ġ 1 0 0 . pro sent ), ĠS yk meld ing sp eri ode ( 1 . jan uar , Ġ 1 2 . jan uar , Ġ 1 0 0 . pro sent )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sy k meld ing Ġik ke Ġel d re Ġen n Ġ 6 ĠmÃ¥ ned er Ġf Ã¥r Ġik ke Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsy k meld ing ( Sy k meld ing sp eri ode ( 1 . jan uar , Ġ 1 2 . jan uar , Ġ 1 0 0 . pro sent ), Ġmot t att Ġ= Ġ 1 2 . j uli . at Start OfDay ()) ĊĠĠĠĠĠĠĠ ĠassertFalse ( sy k meld ing . valid er ( sy k meld ing . peri ode ()). has Errors Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sy k meld ing Ġel d re Ġen n Ġ 6 ĠmÃ¥ ned er Ġf Ã¥r Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsy k meld ing ( Sy k meld ing sp eri ode ( 1 . jan uar , Ġ 1 2 . jan uar , Ġ 1 0 0 . pro sent ), Ġmot t att Ġ= Ġ 1 3 . j uli . at Start OfDay ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( sy k meld ing . valid er ( sy k meld ing . peri ode ()). has Errors Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsy k meld ing ( var arg Ġsy ke period er : ĠS yk meld ing sp eri ode , Ġmot t att : ĠLocalDateTime ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtid lig ste F om Ġ= ĠS yk meld ing sp eri ode . peri ode ( sy ke period er . toList ()) ?. start ?. at Start OfDay () ĊĠĠĠĠĠĠĠ Ġval Ġsist e Tom Ġ= ĠS yk meld ing sp eri ode . peri ode ( sy ke period er . toList ()) ?. end Inclusive ?. at Start OfDay () ĊĠĠĠĠĠĠĠ Ġsy k meld ing Ġ= ĠS yk meld ing ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ings refer an se Id Ġ= ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn r Ġ= ĠUN G _ PERSON _ FN R _ 2 0 1 8 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r Id Ġ= Ġ" 1 2 3 4 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg nummer Ġ= Ġ" 9 8 7 6 5 4 3 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy ke period er Ġ= Ġsy ke period er . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy k meld ing Sk rev et Ġ= Ġtid lig ste F om Ġ?: ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmot t att Ġ= Ġmot t att Ġ?: Ġsist e Tom Ġ?: ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ