package Ġno . nav . hel se . g ren sek omp . web . api . dto . validation Ċ Ċ import Ġno . nav . hel se . ar be id sg iver . integr as jon er . a are g .* Ċ import Ġno . nav . hel se . g ren sek omp . TestData Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . val ik tor . Constraint Violation Exception Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDate . of Ċ import Ġjava . time . LocalDateTime Ċ Ċ internal Ġclass ĠA are g Constraints Kt Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` K ant - i - k ant Ġar be ids for hold Ġtell er Ġsom Ġsam men h eng ende `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġar be id sg iver Ġ= ĠAr be id sg iver (" AS ", Ġ" 1 2 3 2 2 4 2 4 2 3 ") ĊĠĠĠĠĠĠĠ Ġval Ġop pl ys ning sp li kt ig Ġ= ĠOp pl ys ning sp li kt ig (" AS ", Ġ" 1 2 1 2 1 2 1 2 1 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġar be ids For hold 1 Ġ= ĠAr be ids for hold ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġop pl ys ning sp li kt ig , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn set t else sp eri ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġof ( 2 0 1 9 , Ġ 3 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġof ( 2 0 2 1 , Ġ 4 , Ġ 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġar be ids For hold 2 Ġ= ĠAr be ids for hold ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġop pl ys ning sp li kt ig , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn set t else sp eri ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġof ( 2 0 2 1 , Ġ 5 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ider Ar be ids for hold ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ar be ids For hold 1 , Ġar be ids For hold 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Data . gy ld ig So ek nad . copy ( peri ode Ġ= ĠTest Data . gy ld ig So ek nad . peri ode . copy ( tom Ġ= Ġof ( 2 0 2 1 , Ġ 7 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < Constraint Violation Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ider Ar be ids for hold ( listOf ( ar be ids For hold 2 ), ĠTest Data . gy ld ig So ek nad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows < Constraint Violation Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ider Ar be ids for hold ( emptyList (), ĠTest Data . gy ld ig So ek nad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows < Constraint Violation Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfor Lang t Opp hold Ġ= Ġar be ids For hold 2 . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan set t else sp eri ode Ġ= ĠAn set t else sp eri ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 2 1 , Ġ 5 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ider Ar be ids for hold ( listOf ( ar be ids For hold 1 , Ġfor Lang t Opp hold ), ĠTest Data . gy ld ig So ek nad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` merge Ġfragment ed Ġperiods `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sl Ã¥ Sam men Period er ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġskal Ġble Ġmer get Ġtil Ġ 1 Ġper i ode Ġf ra Ġ 1 . 1 . 2 1 Ġtil Ġ 2 8 . 2 . 2 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 1 , Ġ 1 Ġ), Ġof ( 2 0 2 1 , Ġ 1 , Ġ 2 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 2 , ĠĠ 1 ), Ġof ( 2 0 2 1 , Ġ 2 , Ġ 1 3 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 2 , Ġ 1 5 Ġ), Ġof ( 2 0 2 1 , Ġ 2 , Ġ 2 8 )), ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġskal Ġb li Ġmer get Ġtil Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 3 , Ġ 2 0 Ġ), Ġof ( 2 0 2 1 , Ġ 3 , Ġ 3 1 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 4 , Ġ 2 Ġ), Ġof ( 2 0 2 1 , Ġ 4 , Ġ 3 0 )), ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġskal Ġb li Ġmer get Ġtil Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 7 , Ġ 1 Ġ), Ġof ( 2 0 2 1 , Ġ 8 , Ġ 3 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 9 , Ġ 1 Ġ), Ġnull ), ĊĠĠĠĠĠĠĠ Ġ)) ). has Size ( 3 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( sl Ã¥ Sam men Period er ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 1 , Ġ 1 Ġ), Ġof ( 2 0 2 1 , Ġ 1 , Ġ 2 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 9 , Ġ 1 Ġ), Ġnull ), ĊĠĠĠĠĠĠĠ Ġ)) ). has Size ( 2 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( sl Ã¥ Sam men Period er ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer i ode ( of ( 2 0 2 1 , Ġ 9 , Ġ 1 Ġ), Ġnull ), ĊĠĠĠĠĠĠĠ Ġ)) ). has Size ( 1 ) ĊĊĠĠĠ Ġ} Ċ }