package Ġcom . fib el att i . pin board . features . app state Ċ Ċ import Ġcom . fib el att i . pin board . core . android . Connectivity Info Provider Ċ import Ġcom . fib el att i . pin board . features . posts . domain . model . Post Ċ import Ġcom . fib el att i . pin board . random Boolean Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠPop ular Action Handler Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmock Connectivity Info Provider Ġ= Ġmock k < Connectivity Info Provider >() ĊĊĠĠĠ Ġprivate Ġval Ġpopular Action Handler Ġ= ĠPop ular Action Handler ( ĊĠĠĠĠĠĠĠ Ġmock Connectivity Info Provider ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmock Boolean Ġ= Ġrandom Boolean () ĊĠĠĠ Ġprivate Ġval Ġinitial Content Ġ= ĠPop ular Posts Content ( ĊĠĠĠĠĠĠĠ Ġposts Ġ= Ġmock k (), ĊĠĠĠĠĠĠĠ Ġshould Load Ġ= Ġmock Boolean , ĊĠĠĠĠĠĠĠ Ġis Connected Ġ= Ġmock Boolean , ĊĠĠĠĠĠĠĠ Ġprevious Content Ġ= Ġmock k () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠRefresh Pop ular Tests Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` WHEN Ġcurrent Content Ġis Ġnot ĠPop ular Posts Content ĠTHEN Ġsame Ġcontent Ġis Ġreturned `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmock k < Post List Content >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Blocking Ġ{ Ġpopular Action Handler . run Action ( Refresh Pop ular , Ġcontent ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` WHEN Ġcurrent Content Ġis ĠPop ular Posts Content ĠTHEN Ġupdated Ġcontent Ġis Ġreturned `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmock Connectivity Info Provider . isConnected () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Action Handler . run Action ( Refresh Pop ular , Ġinitial Content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPop ular Posts Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposts Ġ= Ġinitial Content . posts , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Load Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Connected Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Content Ġ= Ġinitial Content . previous Content ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġmock Connectivity Info Provider . isConnected () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠSet Pop ular Posts Tests Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` WHEN Ġcurrent Content Ġis Ġnot ĠPop ular Posts Content ĠTHEN Ġsame Ġcontent Ġis Ġreturned `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmock k < Post List Content >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Action Handler . run Action ( mock k < Set Pop ular Posts >(), Ġcontent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` WHEN Ġcurrent Content Ġis ĠPop ular Posts Content ĠTHEN Ġupdated Ġcontent Ġis Ġreturned `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmock Connectivity Info Provider . isConnected () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Posts : ĠList < Post > Ġ= Ġmock k () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Action Handler . run Action ( Set Pop ular Posts ( new Posts ), Ġinitial Content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPop ular Posts Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposts Ġ= Ġnew Posts , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Load Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Connected Ġ= Ġinitial Content . isConnected , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Content Ġ= Ġinitial Content . previous Content ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ