/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠInc . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* Ġ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 . google . container . tools . core . analytics Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . google . container . tools . core . properties . Plugin Properties FileReader Ċ import Ġcom . google . container . tools . test . Container Tools Rule Ċ import Ġcom . google . container . tools . test . Test Service Ċ import Ġcom . intellij . ide . util . Properties Component Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠTests Ġfor Ġ[ Usage Tracker Manager Service ]. Ċ Ġ*/ Ċ class ĠUsage Tracker Manager Service Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġcontainer Tools Rule Ġ= ĠContainer Tools Rule ( this ) ĊĊĠĠĠ Ġ@ Test Service ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproperty Reader : ĠPlugin Properties FileReader ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtracking Preference Property : ĠProperties Component ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġusage Tracker Manager Service : ĠUsage Tracker Manager Service ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġusage Tracker Manager Service Ġ= ĠUsage Tracker Manager Service ( tracking Preference Property ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` usage Ġtracking Ġis Ġnot Ġavailable Ġand Ġnot Ġenabled Ġin Ġunit Ġtest Ġmode `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġanalytics ĠID Ġto Ġa Ġproper Ġvalue ĊĠĠĠĠĠĠĠ Ġval Ġanalytics Id Ġ= Ġ" UA - 1 2 3 4 5 " ĊĠĠĠĠĠĠĠ Ġmock Analytics Id ( analytics Id ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . is Usage Tracking Available ()). isFalse () ĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . is Usage Tracking Enabled ()). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġuser Ġdata Ġtracking Ġpreference Ġis Ġstored Ġtrue Ġthen Ġtracking Ġis Ġopt ed Ġin `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracking Preference Property . getBoolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" GOOGLE _ CLOUD _ TOOLS _ USAGE _ TRACK ER _ OPT _ IN ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġanswers Ġ{ Ġtrue Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . is Tracking Opt ed In ()). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġuser Ġdata Ġtracking Ġpreference Ġis Ġstored Ġfalse Ġthen Ġtracking Ġis Ġnot Ġopt ed Ġin `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracking Preference Property . getBoolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" GOOGLE _ CLOUD _ TOOLS _ USAGE _ TRACK ER _ OPT _ IN ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġanswers Ġ{ Ġfalse Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . is Tracking Opt ed In ()). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġanalytics ĠID Ġwhen ĠID Ġhas Ġbeen Ġsubstit uted Ġreturns Ġanalytics ĠID `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanalytics Id Ġ= Ġ" UA - 1 2 3 4 5 " ĊĠĠĠĠĠĠĠ Ġmock Analytics Id ( analytics Id ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . get Analytics Id ()). isEqualTo ( analytics Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġanalytics ĠID Ġwhen Ġproperty Ġplaceholder Ġhas Ġnot Ġbeen Ġsubstit uted Ġreturns Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanalytics Id Placeholder Ġ= Ġ"\ ${ analytics Id }" ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty Reader . getProperty Value (" analytics . id ") Ġ} Ġanswers Ġ{ Ġanalytics Id Placeholder Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( usage Tracker Manager Service . get Analytics Id ()). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock Analytics Id ( analytics Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty Reader . getProperty Value (" analytics . id ") Ġ} Ġanswers Ġ{ Ġanalytics Id Ġ} ĊĠĠĠ Ġ} Ċ } Ċ