package Ġme . qu ench jian . presentation . statistics Ċ Ċ import Ġme . qu ench jian . concurrent . Test Scheduler Ċ import Ġme . qu ench jian . data . Fake Task Repository Ċ import Ġme . qu ench jian . presentation . statistics . model . Calculate Tasks UseCase Ċ import Ġme . qu ench jian . presentation . statistics . model . Statistics Ċ import Ġme . qu ench jian . web service . Fake Api Ċ import Ġkotlin . test . After Test Ċ import Ġkotlin . test . Before Test Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertNull Ċ Ċ class ĠCalculate Tasks UseCase Test Ġ{ ĊĊĠ Ġprivate Ġval Ġuse Case : ĠCalculate Tasks UseCase Ġ= ĠCalculate Tasks UseCase ( Test Scheduler (), ĠFake Api (), ĠFake Task Repository ()) ĊĊĠ Ġprivate Ġvar Ġstatistics : ĠStatistics ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġthrowable : ĠThrowable ? Ġ= Ġnull ĊĊĠ Ġ@ Before Test ĊĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġuse Case . register Listener ( object Ġ: ĠCalculate Tasks UseCase . Result Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( statistics : ĠStatistics ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Calculate Tasks UseCase Test . statistics Ġ= Ġstatistics ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun ĠonError ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrowable Ġ= Ġt ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġ@ After Test ĊĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠ Ġuse Case . dispose () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Enable Reload () Ġ{ ĊĠĠĠ Ġuse Case ( true ) ĊĠĠĠ ĠassertNotNull ( statistics ) ĊĠĠĠ ĠassertEquals ( 1 0 0 , Ġstatistics !!. active Percent ) ĊĠĠĠ ĠassertEquals ( 0 , Ġstatistics !!. completed Percent ) ĊĠĠĠ ĠassertNull ( throwable ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Disable Reload () Ġ{ ĊĠĠĠ Ġuse Case ( false ) ĊĠĠĠ ĠassertNotNull ( statistics ) ĊĠĠĠ ĠassertEquals ( 1 0 0 , Ġstatistics !!. active Percent ) ĊĠĠĠ ĠassertEquals ( 0 , Ġstatistics !!. completed Percent ) ĊĠĠĠ ĠassertNull ( throwable ) ĊĠ Ġ} Ċ } Ċ