/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠV lad im ir ĠJ ovan ov ic Ċ Ġ* Ċ Ġ* Ġ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 . vl ad 1 m 1 r . kot lint est . presentation . list Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . n ha ar man . mock it ok otlin 2 .* Ċ import Ġcom . vl ad 1 m 1 r . kot lint est . R Ċ import Ġcom . vl ad 1 m 1 r . kot lint est . domain . models . Photo Data Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠList Adapter Should Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview Group Ġ= Ġmock < ViewGroup >() ĊĠĠĠ Ġprivate Ġval Ġlist Adapter Ġ= Ġspy ( ListAdapter ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġthrow Exception _ when Wrong ViewType Passed () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Adapter . onCreate ViewHolder ( view Group , ĠR . layout . item _ photo Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate ViewHolder _ when Correct ViewType Passed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist ViewHolder Ġ= Ġmock < ListView Holder >() ĊĠĠĠĠĠĠĠ Ġdo Return ( list ViewHolder ). wh enever ( list Adapter ). get ViewHolder ( view Group ) ĊĠĠĠĠĠĠĠ ĠassertThat ( list Adapter . onCreate ViewHolder ( view Group , ĠR . layout . item _ photo )). isEqualTo ( list ViewHolder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbind ViewHolder _ with Photo Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist ViewHolder Ġ= Ġmock < ListView Holder >() ĊĠĠĠĠĠĠĠ Ġval Ġphoto Data Ġ= ĠPhoto Data (" name ", Ġ" url ") ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmock < ArrayList < Photo Data >>() ĊĠĠĠĠĠĠĠ Ġdo Return ( list ). wh enever ( list Adapter ). list ĊĠĠĠĠĠĠĠ Ġdo Return ( photo Data ). wh enever ( list )[ any ()] ĊĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġ( 1 .. 1 0 0 0 ). random () ĊĠĠĠĠĠĠĠ Ġlist Adapter . on Bind ViewHolder ( list ViewHolder , Ġposition ) ĊĠĠĠĠĠĠĠ Ġverify ( list ViewHolder ). set Photo ( photo Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhave Same Layout Id _ for Every ViewType () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( list Adapter . getItem ViewType (( 1 .. 1 0 0 0 ). random ())). isEqualTo ( R . layout . item _ photo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠClosed Range < Int >. random () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRandom (). nextInt ( end Inclusive Ġ- Ġstart ) Ġ+ Ġ Ġstart Ċ }