/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 9 ĠG use v ĠAnd rei Ċ Ġ* Ċ Ġ* Ġ Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// 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 . luck y little sp arrow . water wall . recycler . sticky Ċ Ċ import Ġandroid . view . View Ċ import Ġcom . luck y little sp arrow . water wall . recycler . base . Base ViewHolder Ċ import Ġcom . luck y little sp arrow . water wall . recycler . base . Empty ViewHolder Ċ import Ġcom . luck y little sp arrow . water wall . recycler . base . Section Dao Ċ import Ġcom . luck y little sp arrow . water wall . recycler . base . Section Mediator Ċ import Ġcom . luck y little sp arrow . water wall . recycler . section . Item Container Ċ import Ġcom . luck y little sp arrow . water wall . recycler . section . Section Params Ċ import Ġcom . luck y little sp arrow . water wall . recycler . simple . Simple Section Dao Ċ import Ġcom . luck y little sp arrow . water wall . recycler . testdata .* Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠSt icky Header Helper Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmedi ator : ĠSection Mediator Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġsticky Header Helper Ġ= ĠSt icky Header Helper ( medi ator ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlist : ĠArrayList < Item Container > ĊĠĠĠ Ġprivate Ġval Ġview : ĠView Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval ĠviewHolder Ġ= ĠEmpty ViewHolder < Test Header >( view ) ĊĊĠĠĠ Ġval Ġsection Parameters Ġ= ĠSection Params . builder () ĊĠĠĠĠĠĠĠ Ġ. header ResourceId ( header ResourceId ) ĊĠĠĠĠĠĠĠ Ġ. item ResourceId ( item ResourceId ) ĊĠĠĠĠĠĠĠ Ġ. footer ResourceId ( footer ResourceId ) ĊĠĠĠĠĠĠĠ Ġ. loading ResourceId ( loading ResourceId ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġsection Ġ= Ġobject Ġ: ĠTest Section ( ĊĠĠĠĠĠĠĠ ĠTest Items Factory . header , ĊĠĠĠĠĠĠĠ ĠTest Items Factory . get Names (), ĊĠĠĠĠĠĠĠ ĠTest Items Factory . footer ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Section Params (): ĠSection Params Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsection Parameters ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Header ViewHolder ( view : ĠView ): ĠBase ViewHolder < Test Header > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠviewHolder ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġlist . add ( Test Items Factory . header ) ĊĠĠĠĠĠĠĠ Ġlist . addAll ( Test Items Factory . get Names 2 ()) ĊĠĠĠĠĠĠĠ Ġlist . add ( Test Items Factory . footer ) ĊĊĠĠĠĠĠĠĠ Ġwhenever ( medi ator . get Visible Items List ()). thenReturn ( list ) ĊĠĠĠĠĠĠĠ Ġwhenever ( medi ator . get Section By Item ( any ())). thenReturn ( Simple Section Dao ( section ) Ġas ĠSection Dao < Nothing , ĠNothing , ĠNothing >) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Header () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( sticky Header Helper . is Header ( 0 )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( sticky Header Helper . is Header ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( sticky Header Helper . is Header ( 1 0 0 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Header Layout () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Layout ( 0 ), Ġheader ResourceId ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Layout ( 1 ), Ġheader ResourceId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Header Layout _ null () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( medi ator . get Section By Item ( any ())). thenReturn ( null ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Layout ( 0 ), Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Layout ( 1 ), Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Header Position For Item () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Position For Item ( 2 ), Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Position For Item ( 1 0 0 0 ), Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Header Position For Item _ Invalid () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Position For Item (- 1 ), Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Header Position For Item _ Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( medi ator . get Visible Items List ()). thenReturn ( listOf ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sticky Header Helper . getHeader Position For Item ( 0 ), Ġ- 1 ) ĊĠĠĠ Ġ} Ċ }