/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠExact pro Ġ( Exact pro ĠSystems ĠLimited ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . util Ċ Ċ import Ġcom . exact pro . th 2 . common . grpc . Event Status Ċ import Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . Base Auth Ċ import Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . Connection Cfg Ċ import Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . DataService Cfg Ċ import Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . Event Processor Cfg Ċ import Ġcom . exact pro . th 2 . dat apro cess or . zephyr . cfg . Ze phyr Synchronization Cfg Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠTest Configuration Util Kt Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` does Ġnot Ġreport Ġerrors Ġfor Ġvalid Ġconfiguration `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcfg Ġ= ĠZe phyr Synchronization Cfg ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Service Cfg (" test ", Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" A ", Ġ" http :// test . com ", ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" B ", Ġ" http :// test . com ", ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġ" A ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġ" B ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġcfg . validate () ĊĠĠĠĠĠĠĠ ĠassertTrue ( errors . isEmpty ()) Ġ{ Ġ" Unexpected Ġerrors : Ġ$ errors " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` does Ġnot Ġreport Ġerrors Ġfor Ġvalid Ġconfiguration Ġwith Ġdefault Ġnames `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcfg Ġ= ĠZe phyr Synchronization Cfg ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Service Cfg (" test ", Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg ( baseUrl Ġ= Ġ Ġ" http :// test . com ", Ġj ira Ġ= Ġ ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġcfg . validate () ĊĠĠĠĠĠĠĠ ĠassertTrue ( errors . isEmpty ()) Ġ{ Ġ" Unexpected Ġerrors : Ġ$ errors " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` reports Ġerror Ġfor Ġduplicated Ġconnections `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcfg Ġ= ĠZe phyr Synchronization Cfg ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Service Cfg (" test ", Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" A ", Ġ" http :// test . com ", ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" A ", Ġ" http :// test 2 . com ", ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġ" A ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġcfg . validate () ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" Configuration Ġhas Ġ 2 Ġconnections Ġwith Ġthe Ġsame Ġname ĠA "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerrors ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` reports Ġerror Ġfor Ġsync Ġparameters Ġwith Ġunknown Ġdestination `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcfg Ġ= ĠZe phyr Synchronization Cfg ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Service Cfg (" test ", Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" A ", Ġ" http :// test . com ", ĠBase Auth (" user ", Ġ" pwd ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnection Cfg (" C ", Ġ" http :// test . com ", ĠBase Auth (" user ", Ġ" pwd ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġ" A ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Processor Cfg (" .* ", Ġ" B ", Ġstatus Mapping Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . SUCCESS Ġto Ġ" PASS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Status . FAILED Ġto Ġ" WIP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġcfg . validate () ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" Synchronization Ġparameters Ġwith Ġdestination ĠB Ġdoes Ġnot Ġhave Ġmatched Ġconnection . ĠKnown Ġconnections : ĠA , ĠC "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerrors ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }