package Ġcom . z ey ad . use cases . api Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . test . rule . Build Config Ċ import Ġcom . z ey ad . use cases . db . Data Base Manager Ċ import Ġcom . z ey ad . use cases . utils . Data Base Manager Util Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . Runtime Environment Ċ import Ġorg . ro bo lectric . annotation . Config Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* Ġ@ author Ġby ĠZ Ia Do Ġon Ġ 5 / 1 4 / 1 7 . Ċ Ġ*/ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ @ Config ( constants Ġ= ĠBuild Config :: class , Ġsdk Ġ= Ġ[ 2 5 ]) Ċ class ĠData Service Factory Test Ġ{ ĊĠĠĠ Ġprivate Ġval ĠURL Ġ= Ġ" https :// api . github . com /" ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm DataService Config : ĠData Service Config ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Context : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbuilder : ĠOk HttpClient . Builder ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcache : ĠCache ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun ĠsetUp () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġmock Context Ġ= Ġmock ( Application :: class . java ) ĊĠĠĠĠĠĠĠ Ġmock Context Ġ= ĠRuntime Environment . application ĊĠĠĠĠĠĠĠ Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 1 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( 1 5 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġcache Ġ= ĠCache ( File ("/ data / data / com / z ey ad / use cases / cache /", Ġ" http - cache "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 1 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ). to Long ()) ĊĠĠĠĠĠĠĠ Ġm DataService Config Ġ= ĠData Service Config . Builder ( mock Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ok Http Builder ( builder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ok Http Cache ( cache ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Room ( object Ġ: ĠData Base Manager Util Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetData Base Manager ( data Class : ĠClass < *> ): ĠData Base Manager ? Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Manager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ ĠData Service Factory ( m DataService Config ) ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠData Service Factory . data Service ĊĠĠĠĠĠĠĠ ĠassertNotNull ( com . z ey ad . use cases . Config . api Connection ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( com . z ey ad . use cases . Config . background Thread ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( com . z ey ad . use cases . Config . gson ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( instance ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( com . z ey ad . use cases . Config . base URL , ĠURL ) ĊĠĠĠ Ġ} Ċ } Ċ