package Ġcom . ak in ci . social ap it rial . feature . secure . user . user list . viewModel Ċ Ċ import Ġcom . ak in ci . social ap it rial . a helpers . Instant Executor Extension Ċ import Ġcom . ak in ci . social ap it rial . a helpers . TestContext Provider Ċ import Ġcom . ak in ci . social ap it rial . common . helper . Resource Ċ import Ġcom . ak in ci . social ap it rial . feature . secure . user . data . output . user list . Follower Or Friend Response Ċ import Ġcom . ak in ci . social ap it rial . feature . secure . user . repository . UserRepository Ċ import Ġcom . ak in ci . social ap it rial . feature . secure . user . user list . adapter . view pager . ViewPager Mode Ċ import Ġcom . ak in ci . social ap it rial . json responses . Get Follower Or Friend Response Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . un mock k All Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ Ċ @ Experimental Cor outines Api Ċ @ Extend With ( Instant Executor Extension :: class ) Ċ class ĠUser List Content ViewModel Test Ġ{ ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġuser Repository : ĠUser Repository ĊĊĠĠĠ Ġlateinit Ġvar Ġuser List Content ViewModel Ġ: ĠUser List Content ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġcoroutine Context Ġ= ĠTest Context Provider () ĊĠĠĠ Ġprivate Ġval Ġm oshi Ġ= ĠM oshi . Builder (). build () ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this , Ġrelax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel Ġ= ĠUser List Content ViewModel ( coroutine Context , Ġuser Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun ĠtearDown () Ġ{ Ġun mock k All () Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Follow ers Ġreturns ĠSuccess ` (){ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġuser Repository . fetch Follow ers ( any ()) Ġ} Ġreturns ĠResource . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm oshi . adapter ( Follower Or Friend Response :: class . java ). fromJson ( Get Follower Or Friend Response . follow er Or Friend Response ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . followers EventHandler . observe Fore ver { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( it ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġit . getContent IfNot Handled ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Loading Ġ-> Ġ{ ĠassertThat ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . data ). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . data ?. size ). is GreaterThan ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġvalue . data ?. get ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( user ?. name ). isEqualTo (" V ild an ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . fetch Initial Data ( ViewPager Mode . FOLLOW ERS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Follow ings Ġreturns ĠSuccess ` (){ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġuser Repository . fetch Follow ings ( any ()) Ġ} Ġreturns ĠResource . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm oshi . adapter ( Follower Or Friend Response :: class . java ). fromJson ( Get Follower Or Friend Response . follow er Or Friend Response ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . friends EventHandler . observe Fore ver { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( it ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġit . getContent IfNot Handled ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Loading Ġ-> Ġ{ ĠassertThat ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . data ). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . data ?. size ). is GreaterThan ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġvalue . data ?. get ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( user ?. name ). isEqualTo (" V ild an ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . fetch Initial Data ( ViewPager Mode . FR I END S ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Follow ers Ġreturns ĠError ` (){ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġuser Repository . fetch Follow ers ( any ()) Ġ} Ġreturns ĠResource . Error (" Get ĠFollow ers ĠService ĠEn counter ed Ġan ĠError ") ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . followers EventHandler . observe Fore ver { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( it ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġit . getContent IfNot Handled ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . message ). isEqualTo (" Get ĠFollow ers ĠService ĠEn counter ed Ġan ĠError ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . fetch Initial Data ( ViewPager Mode . FOLLOW ERS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Follow ings Ġreturns ĠError ` (){ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġuser Repository . fetch Follow ings ( any ()) Ġ} Ġreturns ĠResource . Error (" Get ĠFollow ings ĠService ĠEn counter ed Ġan ĠError ") ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . friends EventHandler . observe Fore ver { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( it ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġit . getContent IfNot Handled ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value . message ). isEqualTo (" Get ĠFollow ings ĠService ĠEn counter ed Ġan ĠError ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser List Content ViewModel . fetch Initial Data ( ViewPager Mode . FR I END S ) ĊĠĠĠ Ġ} Ċ Ċ }