/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġpan pf Ġ< pan p fp an pf @ outlook . com > Ċ Ġ* Ċ Ġ* Ġ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 . github . pan pf . assembly adapter . pager 2 . paging . test Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . paging . Load State Ċ import Ġcom . github . pan pf . assembly adapter . pager 2 . paging . Load State Fragment State Adapter Ċ import Ġcom . github . pan pf . tools 4 a . test . k tx . get Fragment Sync Ċ import Ġcom . github . pan pf . tools 4 a . test . k tx . launch Fragment In Container Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠLoad State Fragment State Adapter Test Ġ{ ĊĊĠĠĠ Ġclass ĠLoad State Fragment Ġ: ĠFragment () ĊĊĠĠĠ Ġclass ĠTest Fragment Ġ: ĠFragment () ĊĊĠĠĠ Ġclass ĠTest Load State Fragment State Adapter Ġ: ĠLoad State Fragment State Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġconstructor ( fragment Manager : ĠFragment Manager , Ġlifecycle : ĠLifecycle ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġconstructor ( fragment Activity : ĠFragment Activity ) Ġ: Ġsuper ( fragment Activity ) ĊĠĠĠĠĠĠĠ Ġconstructor ( fragment : ĠFragment ) Ġ: Ġsuper ( fragment ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Fragment ( position : ĠInt , Ġload State : ĠLoad State ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLoad State Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Constructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Scenario Ġ= ĠTest Fragment :: class . launch Fragment In Container () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġfragment Scenario . get Fragment Sync () ĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment ) ĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment . require Activity ()) ĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment . child FragmentManager , Ġfragment . lifecycle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Method GetItem ViewType () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Scenario Ġ= ĠTest Fragment :: class . launch Fragment In Container () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġfragment Scenario . get Fragment Sync () ĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType (- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType ( 1 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload State Ġ= ĠLoad State . Loading ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType (- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠgetItem ViewType ( 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Method Create Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Scenario Ġ= ĠTest Fragment :: class . launch Fragment In Container () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġfragment Scenario . get Fragment Sync () ĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload State Ġ= ĠLoad State . Loading ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( create Fragment (- 1 ) Ġis ĠLoad State Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( create Fragment ( 0 ) Ġis ĠLoad State Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( create Fragment ( 1 ) Ġis ĠLoad State Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Display Load State As Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Scenario Ġ= ĠTest Fragment :: class . launch Fragment In Container () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġfragment Scenario . get Fragment Sync () ĊĊĠĠĠĠĠĠĠ ĠTest Load State Fragment State Adapter ( fragment ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( display Load State As Item ( Load State . Loading )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( display Load State As Item ( Load State . Error ( Exception ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertFalse ( display Load State As Item ( Load State . Not Loading ( false ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertFalse ( display Load State As Item ( Load State . Not Loading ( true ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }