package Ġno . nav . f amil ie . ba . sak . kj er ne . v ilk Ã¥r sv ur der ing Ċ Ċ import Ġio . mock k . mock k Ċ import Ġno . nav . f amil ie . ba . sak . common . F unk s jon ell Fe il Ċ import Ġno . nav . f amil ie . ba . sak . common . lag Be handling Ċ import Ġno . nav . f amil ie . ba . sak . common . lag V ilk Ã¥r Result at Ċ import Ġno . nav . f amil ie . ba . sak . common . lag V ilk Ã¥r sv ur der ing Ċ import Ġno . nav . f amil ie . ba . sak . common . random Fn r Ċ import Ġno . nav . f amil ie . ba . sak . ek st ern . rest Dom ene . Rest V ilk Ã¥r Result at Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . f Ã¸ d sel sh en del se . Result at Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . ved tak . be gr unnel ser . Trig ges Av Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . ved tak . valid er Av sl ags be gr un n else Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . v ilk Ã¥r sv ur der ing . dom ene . Person Result at Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . v ilk Ã¥r sv ur der ing . dom ene . V ilk Ã¥r Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . v ilk Ã¥r sv ur der ing . dom ene . V ilk Ã¥r Result at Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert DoesNot Throw Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠV ilk Ã¥r sv ur der ing UtilsTest Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġu ves ent lig V ilk Ã¥r sv ur der ing Ġ= Ġlag V ilk Ã¥r sv ur der ing ( random Fn r (), Ġlag Be handling (), ĠResult at . IK KE _ V UR DER T ) ĊĊĠĠĠ Ġprivate Ġval Ġv ilk Ã¥r Result at Av sl ag Ġ= Ġlag V ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠ Ġperson Result at Ġ= Ġmock k (), ĊĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OS ATT _ I _ RI K ET ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fe il Ġk ast es Ġn Ã¥r Ġdet Ġfin nes Ġl Ã¸ pen de Ġopp fy lt Ġved Ġfor s Ã¸ k ĠpÃ¥ ĠÃ¥ Ġleg ge Ġtil Ġav sl ag Ġut en Ġper i ode `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġperson Result at Ġ= ĠPerson Result at ( v ilk Ã¥r sv ur der ing Ġ= Ġu ves ent lig V ilk Ã¥r sv ur der ing , Ġperson Ident Ġ= Ġrandom Fn r ()) ĊĠĠĠĠĠĠĠ Ġval Ġl Ã¸ pen de Opp fy lt Ġ= ĠV ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Result at Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġperson Result at . v ilk Ã¥r Result ater . add ( l Ã¸ pen de Opp fy lt ) ĊĊĠĠĠĠĠĠĠ Ġval Ġav sl ag U ten Per i ode Ġ= ĠRest V ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . IK KE _ OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Av Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Tid sp unkt Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġer Ek spl is itt Av sl ag P Ã¥ S Ã¸ kn ad Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < F unk s jon ell Fe il > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ilk Ã¥r sv ur der ing Utils . valid er Av sl ag U ten Per i ode Med L Ã¸ pen de ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson S om End res Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r S om End res Ġ= Ġav sl ag U ten Per i ode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fe il Ġk ast es Ġn Ã¥r Ġdet Ġfin nes Ġav sl ag Ġut en Ġper i ode Ġved Ġfor s Ã¸ k ĠpÃ¥ ĠÃ¥ Ġleg ge Ġtil Ġl Ã¸ pen de Ġopp fy lt `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġperson Result at Ġ= ĠPerson Result at ( v ilk Ã¥r sv ur der ing Ġ= Ġu ves ent lig V ilk Ã¥r sv ur der ing , Ġperson Ident Ġ= Ġrandom Fn r ()) ĊĠĠĠĠĠĠĠ Ġval Ġav sl ag U ten Per i ode Ġ= ĠV ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Result at Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . IK KE _ OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġer Ek spl is itt Av sl ag P Ã¥ S Ã¸ kn ad Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġperson Result at . v ilk Ã¥r Result ater . add ( av sl ag U ten Per i ode ) ĊĊĠĠĠĠĠĠĠ Ġval Ġl Ã¸ pen de Opp fy lt Ġ= ĠRest V ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Av Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Tid sp unkt Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < F unk s jon ell Fe il > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ilk Ã¥r sv ur der ing Utils . valid er Av sl ag U ten Per i ode Med L Ã¸ pen de ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson S om End res Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r S om End res Ġ= Ġl Ã¸ pen de Opp fy lt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fe il Ġk ast es Ġik ke Ġn Ã¥r Ġn Ã¥r Ġing en Ġper i ode Ġer Ġl Ã¸ pen de `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġperson Result at Ġ= ĠPerson Result at ( v ilk Ã¥r sv ur der ing Ġ= Ġu ves ent lig V ilk Ã¥r sv ur der ing , Ġperson Ident Ġ= Ġrandom Fn r ()) ĊĠĠĠĠĠĠĠ Ġval Ġav sl ag U ten Per i ode Ġ= ĠV ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Result at Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . IK KE _ OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġer Ek spl is itt Av sl ag P Ã¥ S Ã¸ kn ad Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġperson Result at . v ilk Ã¥r Result ater . add ( av sl ag U ten Per i ode ) ĊĊĠĠĠĠĠĠĠ Ġval Ġl Ã¸ pen de Opp fy lt Ġ= ĠRest V ilk Ã¥r Result at ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Type Ġ= ĠV ilk Ã¥r . B OR _ MED _ S Ã ĺ KER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at . OP PF Y LT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 6 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Av Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ret Tid sp unkt Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ilk Ã¥r sv ur der ing Utils . valid er Av sl ag U ten Per i ode Med L Ã¸ pen de ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson S om End res Ġ= Ġperson Result at , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r S om End res Ġ= Ġl Ã¸ pen de Opp fy lt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Opp dater ing Ġav Ġav sl ag be gr un n else Ġsom Ġik ke Ġs ams var er Ġmed Ġv ilk Ã¥r Ġk aster Ġfe il `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ider Av sl ags be gr un n else ( trig ges Av Ġ= ĠT rig ges Av ( v ilk Ã¥r Ġ= Ġset Of ( V ilk Ã¥r . LO VL IG _ OP PH OLD )), Ġv ilk Ã¥r Result at Av sl ag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ