package Ġno . nav . hel se . probe Ċ Ċ import Ġarrow . core . right Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġio . prometheus . client . Collector Registry Ċ import Ġno . nav . hel se . dom ene . ai y . domain . Ar be id In n te kt Yt else Ċ import Ġno . nav . hel se . dom ene . ai y . domain . Ar be ids av ta le Ċ import Ġno . nav . hel se . dom ene . ai y . domain . Ar be ids for hold Ċ import Ġno . nav . hel se . dom ene . ai y . organ is as jon . Organ is as jon Service Ċ import Ġno . nav . hel se . dom ene . ai y . organ is as jon . domain . Organ is as jon Ċ import Ġno . nav . hel se . dom ene . ai y . organ is as jon . domain . Organ is as j ons nummer Ċ import Ġno . nav . hel se . dom ene . ai y . domain . U tb et aling E ller Tre kk Ċ import Ġno . nav . hel se . dom ene . ai y . domain . V ir ks om het Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Month Ċ import Ġjava . time . Year Month Ċ Ċ class ĠData k val itet Probe Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata k val itet Probe Ġ= ĠData k val itet Probe ( mock k ( relax ed Ġ= Ġtrue ), Ġmock k ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġt elle Ġar be ids for hold Ġi Ġsam me Ġvir ks om het `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgiven Ġ= ĠAr be id In n te kt Yt else ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be ids for hold Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaktiv t _ ar be id st aker for hold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaktiv t _ ar be id st aker for hold _ i _ sam me _ vir ks om het ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġar be ids for hold IS am me V ir ks om het Counter Before Ġ= ĠCollector Registry . default Registry . get Sample Value (" ar be ids for hold _ i _ sam me _ vir ks om het _ totals ") Ġ?: Ġ 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġdata k val itet Probe . insp iser Ar be id In n te kt Yt else ( given ) ĊĊĠĠĠĠĠĠĠ Ġval Ġar be ids for hold IS am me V ir ks om het Counter After Ġ= ĠCollector Registry . default Registry . get Sample Value (" ar be ids for hold _ i _ sam me _ vir ks om het _ totals ") Ġ?: Ġ 0 . 0 ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġar be ids for hold IS am me V ir ks om het Counter After Ġ- Ġar be ids for hold IS am me V ir ks om het Counter Before ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġt elle Ġinn tek ter Ġsom Ġik ke Ġhar Ġet Ġtil h Ã¸ ren de Ġar be ids for hold `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgiven Ġ= ĠAr be id In n te kt Yt else ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be ids for hold Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ n ns inn tek ter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ nn _ vir ks om het 1 _ jan uar Ġto Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ nn _ vir ks om het 1 _ fe bru ar Ġto Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinn te kt Av vik s Counter Before Ġ= ĠCollector Registry . default Registry . get Sample Value (" inn te kt _ av vik _ totals ") ĊĊĠĠĠĠĠĠĠ Ġdata k val itet Probe . insp iser Ar be id In n te kt Yt else ( given ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinn te kt Av vik s Counter After Ġ= ĠCollector Registry . default Registry . get Sample Value (" inn te kt _ av vik _ totals ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 . 0 , Ġinn te kt Av vik s Counter After Ġ- Ġinn te kt Av vik s Counter Before ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġt elle Ġar be ids for hold Ġsom Ġik ke Ġhar Ġtil h Ã¸ ren de Ġinn tek ter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgiven Ġ= ĠAr be id In n te kt Yt else ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be ids for hold Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaktiv t _ ar be id st aker for hold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav sl utt et _ ar be id st aker for hold ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ n ns inn tek ter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ nn _ vir ks om het 1 _ jan uar Ġto ĠlistOf ( aktiv t _ ar be id st aker for hold ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ nn _ vir ks om het 1 _ fe bru ar Ġto ĠlistOf ( aktiv t _ ar be id st aker for hold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġar be ids for hold Av vik s Counter Before Ġ= ĠCollector Registry . default Registry . get Sample Value (" ar be ids for hold _ av vik _ totals ", ĠarrayOf (" type "), ĠarrayOf (" Ar be id st aker ")) Ġ?: Ġ 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġdata k val itet Probe . insp iser Ar be id In n te kt Yt else ( given ) ĊĊĠĠĠĠĠĠĠ Ġval Ġar be ids for hold Av vik s Counter After Ġ= ĠCollector Registry . default Registry . get Sample Value (" ar be ids for hold _ av vik _ totals ", ĠarrayOf (" type "), ĠarrayOf (" Ar be id st aker ")) Ġ?: Ġ 0 . 0 ĊĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġar be ids for hold Av vik s Counter After Ġ- Ġar be ids for hold Av vik s Counter Before ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġt elle Ġorgan is as jon stype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorgan is as jon Service Ġ= Ġmock k < Organ is as jon Service >() ĊĠĠĠĠĠĠĠ Ġval Ġdata k val itet Probe Ġ= ĠData k val itet Probe ( mock k ( relax ed Ġ= Ġtrue ), Ġorgan is as jon Service ) ĊĊĠĠĠĠĠĠĠ Ġval Ġut bet aling Ġ= ĠU tb et aling E ller Tre kk . L Ã¸ nn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvir ks om het Ġ= ĠV ir ks om het . Organ is as jon ( Organ is as j ons nummer (" 8 8 9 6 4 0 7 8 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut bet aling sp eri ode Ġ= ĠYear Month . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p Ġ= ĠBigDecimal ( 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorgan is as jon Service . h ent Organ is as jon (( ut bet aling . vir ks om het Ġas ĠV ir ks om het . Organ is as jon ). organ is as j ons nummer ) ĊĠĠĠĠĠĠĠ Ġ} Ġreturns ĠOrgan is as jon . V ir ks om het (( ut bet aling . vir ks om het Ġas ĠV ir ks om het . Organ is as jon ). organ is as j ons nummer ). right () ĊĊĠĠĠĠĠĠĠ Ġdata k val itet Probe . insp iser U tb et aling E ller Tre kk ( ut bet aling ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorgan is as jon Service . h ent Organ is as jon (( ut bet aling . vir ks om het Ġas ĠV ir ks om het . Organ is as jon ). organ is as j ons nummer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġorg nr 1 Ġ= ĠOrgan is as j ons nummer (" 9 9 5 2 9 8 7 7 5 ") Ċ private Ġval Ġorg nr 2 Ġ= ĠOrgan is as j ons nummer (" 8 8 9 6 4 0 7 8 2 ") Ċ Ċ private Ġval Ġvir ks om het 1 Ġ= ĠV ir ks om het . Organ is as jon ( org nr 1 ) Ċ private Ġval Ġvir ks om het 2 Ġ= ĠV ir ks om het . Organ is as jon ( org nr 2 ) Ċ Ċ private Ġval Ġar be ids for hold Id 1 Ġ= Ġ 1 2 3 4 L Ċ private Ġval Ġar be ids for hold Id 2 Ġ= Ġ 5 6 7 8 L Ċ private Ġval Ġar be ids for hold Id 3 Ġ= Ġ 4 3 2 1 L Ċ Ċ private Ġval Ġaktiv t _ ar be id st aker for hold _ start dat o Ġ= ĠLocalDate . parse (" 2 0 1 9 - 0 1 - 0 1 ") Ċ private Ġval ĊĠĠĠĠĠĠĠ Ġaktiv t _ ar be id st aker for hold Ġ= ĠAr be ids for hold . Ar be id st aker ( ĊĠĠĠĠĠĠĠ Ġar be id sg iver Ġ= Ġvir ks om het 1 , ĊĠĠĠĠĠĠĠ Ġstart dat o Ġ= Ġaktiv t _ ar be id st aker for hold _ start dat o , ĊĠĠĠĠĠĠĠ Ġar be ids for hold Id Ġ= Ġar be ids for hold Id 1 , ĊĠĠĠĠĠĠĠ Ġar be ids av t aler Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAr be ids av ta le . G jel den de (" But ikk med ar be ider ", ĠBigDecimal ( 1 0 0 ), Ġaktiv t _ ar be id st aker for hold _ start dat o ) ĊĠĠĠĠĠĠĠ Ġ)) Ċ Ċ private Ġval Ġaktiv t _ ar be id st aker for hold _ i _ sam me _ vir ks om het _ start dat o Ġ= ĠLocalDate . parse (" 2 0 1 8 - 1 2 - 0 1 ") Ċ private Ġval Ġaktiv t _ ar be id st aker for hold _ i _ sam me _ vir ks om het Ġ= ĠAr be ids for hold . Ar be id st aker ( ĊĠĠĠĠĠĠĠ Ġar be id sg iver Ġ= Ġvir ks om het 1 , ĊĠĠĠĠĠĠĠ Ġstart dat o Ġ= Ġaktiv t _ ar be id st aker for hold _ i _ sam me _ vir ks om het _ start dat o , ĊĠĠĠĠĠĠĠ Ġar be ids for hold Id Ġ= Ġar be ids for hold Id 2 , ĊĠĠĠĠĠĠĠ Ġar be ids av t aler Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAr be ids av ta le . G jel den de (" But ikk med ar be ider ", ĠBigDecimal ( 1 0 0 ), Ġaktiv t _ ar be id st aker for hold _ i _ sam me _ vir ks om het _ start dat o ) ĊĠĠĠĠĠĠĠ Ġ)) Ċ Ċ private Ġval Ġav sl utt et _ ar be id st aker for hold _ start dat o Ġ= ĠLocalDate . parse (" 2 0 1 8 - 0 1 - 0 1 ") Ċ private Ġval Ġav sl utt et _ ar be id st aker for hold _ sl ut td ato Ġ= ĠLocalDate . parse (" 2 0 1 8 - 1 2 - 3 1 ") Ċ private Ġval Ġav sl utt et _ ar be id st aker for hold Ġ= ĠAr be ids for hold . Ar be id st aker ( ĊĠĠĠĠĠĠĠ Ġar be id sg iver Ġ= Ġvir ks om het 2 , ĊĠĠĠĠĠĠĠ Ġstart dat o Ġ= Ġav sl utt et _ ar be id st aker for hold _ start dat o , ĊĠĠĠĠĠĠĠ Ġsl ut td ato Ġ= Ġav sl utt et _ ar be id st aker for hold _ sl ut td ato , ĊĠĠĠĠĠĠĠ Ġar be ids for hold Id Ġ= Ġar be ids for hold Id 3 , ĊĠĠĠĠĠĠĠ Ġar be ids av t aler Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAr be ids av ta le . G jel den de (" But ikk med ar be ider ", ĠBigDecimal ( 1 0 0 ), Ġav sl utt et _ ar be id st aker for hold _ start dat o ) ĊĠĠĠĠĠĠĠ Ġ)) Ċ Ċ private Ġval Ġj an uar _ 2 0 1 9 Ġ= ĠYear Month . of ( 2 0 1 9 , ĠMonth . J AN U ARY ) Ċ private Ġval Ġfe bru ar _ 2 0 1 9 Ġ= ĠYear Month . of ( 2 0 1 9 , ĠMonth . FE BR U ARY ) Ċ Ċ private Ġval Ġl Ã¸ nn _ vir ks om het 1 _ jan uar Ġ= ĠU tb et aling E ller Tre kk . L Ã¸ nn ( vir ks om het 1 , Ġj an uar _ 2 0 1 9 , ĠBigDecimal ( 2 0 0 0 0 )) Ċ private Ġval Ġl Ã¸ nn _ vir ks om het 1 _ fe bru ar Ġ= ĠU tb et aling E ller Tre kk . L Ã¸ nn ( vir ks om het 1 , Ġfe bru ar _ 2 0 1 9 , ĠBigDecimal ( 2 5 0 0 0 )) Ċ