package Ġno . nav . dag p enger . quiz . bir git te Ċ Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġno . nav . hel se . rap ids _ river s . as LocalDateTime Ċ import Ġno . nav . hel se . rap ids _ river s . test support . Test R apid Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ internal Ġclass ĠFlat land Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdelay Ġ= ĠDelay ( 1 , Ġ 1 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġvars le Ġom Ġul Ã¸ ste Ġbeh ov `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrapid : ĠTest R apid Ġ= ĠTest R apid (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlat land ( rap ids Connection Ġ= Ġthis , Ġdelay Ġ= Ġdelay ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrapid . send Test Message ( u L Ã¸ ste Be h ov Json ( op prett et Ġ= ĠLocalDateTime . now (). minus Hours ( 1 ))) Ġ// ĠMan ip ulate Ġtime Ġto Ġtrigger Ġ 3 0 Ġminute Ġthreshold ĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġwith ( rapid . ins pe kt Ã¸ r ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" be h ov _ uten _ full st end ig _ l Ã¸ s ning ", Ġfield ( 0 , Ġ"@ event _ name "). as Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( field ( 0 , Ġ"@ op prett et "). as LocalDateTime ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( field ( 0 , Ġ" for vent et "). as Iterable (). toList (). isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( field ( 0 , Ġ" m ang ler "). as Iterable (). toList (). isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( field ( 0 , Ġ" be h ov _ op prett et "). as LocalDateTime ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( field ( 0 , Ġ" u full st end ig _ be h ov ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sk al Ġik ke Ġvars le Ġom Ġl Ã¸ ste Ġbeh ov `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrapid : ĠTest R apid Ġ= ĠTest R apid (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlat land ( rap ids Connection Ġ= Ġthis , Ġdelay Ġ= Ġdelay ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrapid . send Test Message ( l Ã¸ st Be h ov Json ) ĊĠĠĠĠĠĠĠ Ġrapid . send Test Message ( u L Ã¸ ste Be h ov Json ( op prett et Ġ= ĠLocalDateTime . now (). minus Hours ( 1 ))) Ġ// ĠMan ip ulate Ġtime Ġto Ġtrigger Ġ 3 0 Ġminute Ġthreshold ĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġwith ( rapid . ins pe kt Ã¸ r ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` In gen Ġl Ã¸ ste Ġbeh ov `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrapid : ĠTest R apid Ġ= ĠTest R apid (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlat land ( rap ids Connection Ġ= Ġthis , Ġdelay Ġ= Ġdelay ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrapid . send Test Message ( ingen L Ã¸ ste Be h ov ( op prett et Ġ= ĠLocalDateTime . now (). minus Hours ( 1 ))) Ġ// ĠMan ip ulate Ġtime Ġto Ġtrigger Ġ 3 0 Ġminute Ġthreshold ĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġwith ( rapid . ins pe kt Ã¸ r ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ @ Language (" json ") Ċ private Ġval Ġl Ã¸ st Be h ov Json Ġ= ĊĠĠĠ Ġ""" Ċ { ĊĠ Ġ"@ event _ name ": Ġ" f akt um _ s var ", ĊĠ Ġ"@ op prett et ": Ġ" 2 0 2 0 - 1 1 - 1 8 T 1 1 : 0 4 : 3 2 . 8 6 7 8 2 4 ", ĊĠ Ġ"@ id ": Ġ" 5 5 6 7 4 8 2 C - 2 1 7 5 - 4 6 DE - 9 8 6 2 - 8 B 9 8 B 3 0 2 C 7 F 6 ", ĊĠ Ġ" fn r ": Ġ" 1 2 3 ", ĊĠ Ġ" s Ã¸ kn ad _ uuid ": Ġ" 4 1 6 2 1 ac 0 - f 5 ee - 4 cce - b 1 f 5 - 8 8 a 7 9 f 2 5 f 1 a 5 ", ĊĠ Ġ" f ak ta ": Ġ[ ĠĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 6 6 6 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" Regist rer ings dat o ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ}, ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 7 7 7 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" F Ã¸ d sel sd ato ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ} ĊĠ Ġ], ĊĠ Ġ"@ be h ov ": Ġ[ ĊĠĠĠ Ġ" Regist rer ings dat o ", ĊĠĠĠ Ġ" F Ã¸ d sel sd ato " ĊĠ Ġ], ĊĠ Ġ"@ l Ã¸ s ning ": Ġ{ ĊĠĠĠ Ġ" Regist rer ings dat o ": Ġ" 2 0 2 0 - 1 1 - 0 1 ", ĊĠĠĠ Ġ" F Ã¸ d sel sd ato ": Ġ" 1 9 9 8 - 1 1 - 0 1 " ĊĠ Ġ}, ĊĠ Ġ" S Ã¸ kn ad st id sp unkt ": Ġ" 2 0 2 0 - 1 1 - 0 9 " Ċ } ĊĠĠĠ Ġ""" . trim Indent () Ċ Ċ @ Language (" json ") Ċ private Ġfun Ġu L Ã¸ ste Be h ov Json ( op prett et : ĠLocalDateTime ) Ġ= ĊĠĠĠ Ġ""" Ċ { ĊĠ Ġ"@ event _ name ": Ġ" f akt um _ s var ", ĊĠ Ġ"@ op prett et ": Ġ"$ op prett et ", ĊĠ Ġ"@ id ": Ġ" 9 3 0 e 2 beb - d 3 9 4 - 4 0 2 4 - b 7 1 3 - dbe b 6 ad 3 d 4 bf ", ĊĠ Ġ" fn r ": Ġ" 1 2 3 ", ĊĠ Ġ" s Ã¸ kn ad _ uuid ": Ġ" 4 1 6 2 1 ac 0 - f 5 ee - 4 cce - b 1 f 5 - 8 8 a 7 9 f 2 5 f 1 a 5 ", ĊĠ Ġ" f ak ta ": Ġ[ ĠĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 6 6 6 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" Regist rer ings dat o ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ}, ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 7 7 7 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" F Ã¸ d sel sd ato ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ} ĊĠ Ġ], ĊĠ Ġ"@ be h ov ": Ġ[ ĊĠĠĠ Ġ" Regist rer ings dat o ", ĊĠĠĠ Ġ" F Ã¸ d sel sd ato " ĊĠ Ġ], ĊĠ Ġ"@ l Ã¸ s ning ": Ġ{ ĊĠĠĠ Ġ" Regist rer ings dat o ": Ġ" 2 0 2 0 - 1 1 - 0 1 " ĊĠ Ġ}, ĊĠ Ġ" S Ã¸ kn ad st id sp unkt ": Ġ" 2 0 2 0 - 1 1 - 0 9 " Ċ } ĊĠĠĠ Ġ""" . trim Indent () Ċ Ċ @ Language (" json ") Ċ private Ġfun Ġing en L Ã¸ ste Be h ov ( op prett et : ĠLocalDateTime ) Ġ= ĊĠĠĠ Ġ""" Ċ { ĊĠ Ġ"@ event _ name ": Ġ" f akt um _ s var ", ĊĠ Ġ"@ op prett et ": Ġ"$ op prett et ", ĊĠ Ġ"@ id ": Ġ" 9 3 0 e 2 beb - d 3 9 4 - 4 0 2 4 - b 7 1 3 - dbe b 6 ad 3 d 4 bf ", ĊĠ Ġ" fn r ": Ġ" 1 2 3 ", ĊĠ Ġ" s Ã¸ kn ad _ uuid ": Ġ" 4 1 6 2 1 ac 0 - f 5 ee - 4 cce - b 1 f 5 - 8 8 a 7 9 f 2 5 f 1 a 5 ", ĊĠ Ġ" f ak ta ": Ġ[ ĠĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 6 6 6 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" Regist rer ings dat o ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ}, ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" id ": Ġ" 7 7 7 ", ĊĠĠĠĠĠ Ġ" be h ov ": Ġ" F Ã¸ d sel sd ato ", ĊĠĠĠĠĠ Ġ" clazz ": Ġ" local date " ĊĠĠĠ Ġ} ĊĠ Ġ], ĊĠ Ġ"@ be h ov ": Ġ[ ĊĠĠĠ Ġ" Regist rer ings dat o ", ĊĠĠĠ Ġ" F Ã¸ d sel sd ato " ĊĠ Ġ], ĊĠ Ġ" S Ã¸ kn ad st id sp unkt ": Ġ" 2 0 2 0 - 1 1 - 0 9 " Ċ } ĊĠĠĠ Ġ""" . trim Indent () Ċ