package Ġno . nav . hel se . flex Ċ Ċ import Ġio . micro meter . core . instrument . Meter Registry Ċ import Ġno . nav . hel se . flex . met rik ker . Job bet Under veis Timer Pro sent Ċ import Ġno . nav . hel se . flex . sy ke pen ge so kn ad . kafka .* Ċ import Ġorg . am sh ove . k lu ent .` should Ġbe Ġequal Ġto ` Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ Ċ class ĠJob bet Under veis Timer Pro sent Test Ġ: ĠF el les Test Opp set t () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġjob bet Under veis Timer Pro sent : ĠJob bet Under veis Timer Pro sent ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġregistry : ĠMeter Registry ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtester Val gte Timer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= Ġregistry . counter (" job bet _ du _ under veis _ sv art _ ja ", Ġ" timer _ eller _ pro sent ", Ġ" TIMER ") ĊĠĠĠĠĠĠĠ Ġval Ġfo er Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġjob bet Under veis Timer Pro sent . fin n Fore tr uk ket S var Job bet Under veis ( sk ap S ok nad ( vel g Timer Ġ= Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġval Ġet ter Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġfo er Ġ+ Ġ 1 Ġ` should Ġbe Ġequal Ġto ` Ġet ter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtester Val gte Pro sent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= Ġregistry . counter (" job bet _ du _ under veis _ sv art _ ja ", Ġ" timer _ eller _ pro sent ", Ġ" PRO SENT ") ĊĠĠĠĠĠĠĠ Ġval Ġfo er Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġjob bet Under veis Timer Pro sent . fin n Fore tr uk ket S var Job bet Under veis ( sk ap S ok nad ( vel g Pro sent Ġ= Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġval Ġet ter Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġfo er Ġ+ Ġ 1 Ġ` should Ġbe Ġequal Ġto ` Ġet ter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtester Val gte In gen () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= Ġregistry . counter (" job bet _ du _ under veis _ sv art _ ja ", Ġ" timer _ eller _ pro sent ", Ġ" PRO SENT ") ĊĠĠĠĠĠĠĠ Ġval Ġfo er Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġjob bet Under veis Timer Pro sent . fin n Fore tr uk ket S var Job bet Under veis ( sk ap S ok nad ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġet ter Ġ= Ġcounter . count () ĊĠĠĠĠĠĠĠ Ġfo er Ġ` should Ġbe Ġequal Ġto ` Ġet ter ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġsk ap S ok nad ( vel g Timer : ĠBoolean Ġ= Ġfalse , Ġvel g Pro sent : ĠBoolean Ġ= Ġfalse ): ĠSy ke pen ge so kn ad DTO Ġ{ ĊĠĠĠ Ġreturn ĠSy ke pen ge so kn ad DTO ( ĊĠĠĠĠĠĠĠ Ġfn r Ġ= Ġ" 1 2 3 ", ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠUUID . randomUUID (). toString (), ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠS ok nad stype DTO . AR BE ID ST AK ERE , ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠS ok n ads status DTO . SEND T , ĊĠĠĠĠĠĠĠ Ġopp rett et Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠ Ġsp ors mal Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" JOB B ET _ DU _ 1 0 0 _ PRO SENT _ 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal st ek st Ġ= Ġ" B la Ġb la ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var Ġ= ĠlistOf ( S var DTO ( ver di Ġ= Ġ" JA ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . JA _ NE I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk riter ie For Vis ning Av Under sp ors mal Ġ= ĠVis ning sk riter ium DTO . JA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder sp ors mal Ġ= Ġjob bet Du Under sp ors mal ( vel g Timer Ġ= Ġvel g Timer , Ġvel g Pro sent Ġ= Ġvel g Pro sent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun Ġjob bet Du Under sp ors mal ( ĊĠĠĠ Ġmin Pro sent : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġindex : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvel g Timer : ĠBoolean , ĊĠĠĠ Ġvel g Pro sent : ĠBoolean , Ċ ): ĠList < Sp ors mal DTO > Ġ{ ĊĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MAN GE _ TIMER _ PER _ U KE _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal st ek st Ġ= Ġ" H vor Ġm ange Ġtimer Ġi Ġu ken Ġjob ber Ġdu Ġvan lig vis Ġn Ã¥r Ġdu Ġer Ġfr isk ? ĠVar ier er Ġdet , Ġkan Ġdu Ġopp gi Ġg j enn om sn itt et .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunder tek st Ġ= Ġ" timer Ġper Ġu ke ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . T ALL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġ" 1 5 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MY E _ H AR _ DU _ JOB B ET _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal st ek st Ġ= Ġ" H vor Ġmy e Ġjob bet Ġdu Ġtil sam men ?", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . RADIO _ GR UP PE _ TIMER _ PRO SENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunder tek st Ġ= Ġ" Vel g Ġtimer Ġeller Ġpro sent ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunder sp ors mal Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MY E _ TIMER _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal st ek st Ġ= Ġ" Timer ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . RADIO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var Ġ= Ġif Ġ( vel g Timer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( S var DTO ( ver di Ġ= Ġ" CHECK ED ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk riter ie For Vis ning Av Under sp ors mal Ġ= ĠVis ning sk riter ium DTO . CHECK ED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder sp ors mal Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MY E _ TIMER _ VER DI _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder tek st Ġ= Ġ" timer Ġtotal t ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . T ALL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġ" 1 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MY E _ PRO SENT _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal st ek st Ġ= Ġ" Pro sent ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . RADIO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var Ġ= Ġif Ġ( vel g Pro sent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( S var DTO ( ver di Ġ= Ġ" CHECK ED ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk riter ie For Vis ning Av Under sp ors mal Ġ= ĠVis ning sk riter ium DTO . CHECK ED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder sp ors mal Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ" HV OR _ MY E _ PRO SENT _ VER DI _" Ġ+ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder tek st Ġ= Ġ" pro sent ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsv art ype Ġ= ĠS v art ype DTO . T ALL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġmin Pro sent . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġ" 9 9 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ