/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 0 ĠMagic ĠLe ap , Ġ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 . mag icle ap . magic script . scene . nodes . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġcom . mag icle ap . magic script . R Ċ import Ġcom . mag icle ap . magic script . create Action Down Event Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . never Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . spy Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġorg . am sh ove . k lu ent . shouldBe Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠCustom ScrollBar Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscroll Bar : ĠCustom ScrollBar ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= ĠApplication Provider . getApplicationContext () ĊĠĠĠĠĠĠĠ Ġthis . scroll Bar Ġ= Ġspy ( Custom ScrollBar ( context )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` touch Ġshould Ġnot Ġchange Ġthumb Ġposition Ġby Ġdefault `() Ġ{ ĊĠĠĠĠĠĠĠ Ġscroll Bar . on Touch Event ( scroll Bar . create Action Down Event ()) ĊĊĠĠĠĠĠĠĠ Ġverify ( scroll Bar , Ġnever ()). thumb Position Ġ= Ġany () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` touch Ġshould Ġset Ġthumb Ġposition Ġwhen Ġinteractive `() Ġ{ ĊĠĠĠĠĠĠĠ Ġscroll Bar . interactive Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġscroll Bar . on Touch Event ( scroll Bar . create Action Down Event ()) ĊĊĠĠĠĠĠĠĠ Ġverify ( scroll Bar ). thumb Position Ġ= Ġany () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġredraw Ġafter Ġsetting Ġthumb Ġposition `() Ġ{ ĊĠĠĠĠĠĠĠ Ġscroll Bar . thumb Position Ġ= Ġ 9 9 F ĊĊĠĠĠĠĠĠĠ Ġverify ( scroll Bar ). invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġredraw Ġafter Ġsetting Ġthumb Ġsize `() Ġ{ ĊĠĠĠĠĠĠĠ Ġscroll Bar . thumb Size Ġ= Ġ 9 9 F ĊĊĠĠĠĠĠĠĠ Ġverify ( scroll Bar ). invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġapply Ġvertical Ġorientation Ġattribute `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattrs Ġ= Ġbuild Attributes ( orientation Ġ= Ġ" vertical ") ĊĠĠĠĠĠĠĠ Ġval Ġbar Ġ= ĠCustom ScrollBar ( context , Ġattrs ) ĊĊĠĠĠĠĠĠĠ Ġbar . is Vertical ĠshouldBe Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġapply Ġhorizontal Ġorientation Ġattribute `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattrs Ġ= Ġbuild Attributes ( orientation Ġ= Ġ" orientation ") ĊĠĠĠĠĠĠĠ Ġval Ġbar Ġ= ĠCustom ScrollBar ( context , Ġattrs ) ĊĊĠĠĠĠĠĠĠ Ġbar . is Vertical ĠshouldBe Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Attributes ( orientation : ĠString ): ĠAttributeSet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRo bo lectric . build Attribute Set () ĊĠĠĠĠĠĠĠ Ġbuilder . addAttribute ( R . attr . orientation , Ġorientation ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} Ċ Ċ } Ċ