/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠVS CT Ċ Ġ* Ċ Ġ* Ġ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 Ġfr . vs ct . to ck . bot . mongo Ċ Ċ import Ġfr . vs ct . to ck . bot . engine . feature . Feature Type Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO . delete Feature Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO . disable Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO . enable Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO . isEnabled Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO Test . Feature . a Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO Test . Feature . b Ċ import Ġfr . vs ct . to ck . bot . mongo . Feature Mongo DAO Test . Feature . c Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ internal Ġclass ĠFeature Mongo DAO Test Ġ: ĠAbstract Test () Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠFeature Ġ: ĠFeature Type Ġ{ ĊĠĠĠĠĠĠĠ Ġa , Ġb , Ġc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġbot Id Ġ= Ġ" id " ĊĠĠĠ Ġval Ġnamespace Ġ= Ġ" namespace " ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġcleanup Features () Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete Feature ( bot Id , Ġnamespace , Ġa ) ĊĠĠĠĠĠĠĠ Ġdelete Feature ( bot Id , Ġnamespace , Ġb ) ĊĠĠĠĠĠĠĠ Ġdelete Feature ( bot Id , Ġnamespace , Ġc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` isEnabled Ġreturns Ġfalse ĠWHEN Ġthe Ġfeature Ġis Ġnot Ġpresent `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` isEnabled Ġpers ists Ġdefault Ġfeature Ġstate ĠWHEN Ġthe Ġfeature Ġis Ġnot Ġpresent Ġand Ġfeature Ġis Ġenabled `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( isEnabled ( bot Id , Ġnamespace , Ġa , Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġ// default Ġstate Ġis Ġnot Ġused Ġanymore ĊĠĠĠĠĠĠĠ ĠassertFalse ( isEnabled ( bot Id , Ġnamespace , Ġa , Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` isEnabled Ġpers ists Ġdefault Ġfeature Ġstate ĠWHEN Ġthe Ġfeature Ġis Ġnot Ġpresent Ġand Ġfeature Ġid Ġdisabled `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa , Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġ// default Ġstate Ġis Ġnot Ġused Ġanymore ĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` isEnabled Ġreturns Ġtrue ĠWHEN Ġthe Ġfeature Ġis Ġnot Ġpresent ĠAND Ġdefault Ġis Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa , Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN ĠA Ġfeature Ġenabled Ġin Ġdb ĠTHEN Ġis Enabled Ġreturns Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġenable ( bot Id , Ġnamespace , Ġa ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN ĠA Ġfeature Ġenabled Ġin Ġdb ĠWHEN Ġthe Ġfeature Ġis Ġdisabled ĠTHEN Ġis Enabled Ġreturns Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġenable ( bot Id , Ġnamespace , Ġa ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĊĠĠĠĠĠĠĠ Ġdisable ( bot Id , Ġnamespace , Ġa ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN ĠA Ġfeature Ġenabled Ġin Ġdb ĠWHEN Ġthe Ġfeature Ġis Ġdeleted ĠTHEN Ġis Enabled Ġreturns Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġenable ( bot Id , Ġnamespace , Ġa ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĊĠĠĠĠĠĠĠ Ġdelete Feature ( bot Id , Ġnamespace , Ġa ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( isEnabled ( bot Id , Ġnamespace , Ġa )) ĊĠĠĠ Ġ} Ċ Ċ }