/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 Ġ- Ġpresent Ġ 8 x 8 , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . j its i . config Ċ Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġio . kot est . core . spec . Isolation Mode Ċ import Ġio . kot est . core . spec . style . Should Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . j its i . utils . Config Utils Ċ Ċ class ĠConfig Extensions Kt Test Ġ: ĠShould Spec () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġisolation Mode (): ĠI sol ation Mode ? Ġ= ĠI sol ation Mode . Instance Per Leaf ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" mask ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠConfig Factory . parse String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass - prop Ġ= Ġs 3 cr 3 t ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal - prop Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnested - pass - prop Ġ= Ġ 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnested - normal - prop Ġ= Ġhello ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (" with Ġa Ġset Ġfield Ġregex ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Utils . PASSWORD _ SYS _ PRO PS Ġ= Ġ" pass " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmasked Config Ġ= Ġconfig . mask () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" mask Ġout Ġthe Ġright Ġvalues ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getString (" a . pass - prop ") ĠshouldBe ĠMASK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getString (" a . b . nested - pass - prop ") ĠshouldBe ĠMASK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" not Ġmask Ġout Ġother Ġvalues ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getInt (" a . normal - prop ") ĠshouldBe Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getString (" a . b . nested - normal - prop ") ĠshouldBe Ġ" hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" not Ġaffect Ġthe Ġoriginal Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . getString (" a . pass - prop ") ĠshouldBe Ġ" s 3 cr 3 t " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . getInt (" a . normal - prop ") ĠshouldBe Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . getInt (" a . b . nested - pass - prop ") ĠshouldBe Ġ 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . getString (" a . b . nested - normal - prop ") ĠshouldBe Ġ" hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (" when Ġthe Ġfield Ġregex Ġis Ġnull ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Utils . PASSWORD _ SYS _ PRO PS Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmasked Config Ġ= Ġconfig . mask () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (" should Ġnot Ġchange Ġanything ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getString (" a . pass - prop ") ĠshouldBe Ġ" s 3 cr 3 t " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getInt (" a . normal - prop ") ĠshouldBe Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getInt (" a . b . nested - pass - prop ") ĠshouldBe Ġ 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmasked Config . getString (" a . b . nested - normal - prop ") ĠshouldBe Ġ" hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ