package Ġcom . ade sso . move e . internal . injection . module Ċ Ċ import Ġcom . ade sso . move e . Build Config Ċ import Ġcom . ade sso . move e . data . remote . api . Movie Service Ċ import Ġcom . ch u cker team . ch u cker . api . Ch u cker Interceptor Ċ import Ġcom . m oc z ul . ok 2 curl . Curl Interceptor Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . create Ċ Ċ class ĠNetwork Module Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnetwork Module : ĠNetwork Module ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġretrofit : ĠRet rofit ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġ` set Ġup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Module Ġ= ĠNetwork Module () ĊĠĠĠĠĠĠĠ Ġretrofit Ġ= Ġmock k () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġprovided Ġlogging Ġinterceptor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= Ġnetwork Module . provide Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġval Ġlog Level Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . ENABLE _ LOG ) ĠHttp Logging Interceptor . Level . BODY Ġelse ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠ ĠassertEquals ( logLevel , Ġinterceptor . level ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġprovided Ġokhttp Ġclient Ġfor Ġretrofit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= Ġmock k < Http Logging Interceptor >() ĊĠĠĠĠĠĠĠ Ġval Ġcurl Interceptor Ġ= Ġmock k < Curl Interceptor >() ĊĠĠĠĠĠĠĠ Ġval Ġch u cker Interceptor Ġ= Ġmock k < Ch u cker Interceptor >() ĊĠĠĠĠĠĠĠ Ġval Ġm oshi Ġ= Ġmock k < M oshi >() ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġnetwork Module . provide Ok HttpClient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Interceptor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurl Interceptor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch u cker Interceptor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm oshi ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġwith ( client . intercept ors ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( contains ( logging Interceptor )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( contains ( ch u cker Interceptor )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġprovided Ġretrofit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġmock k < d agger . Lazy < Ok HttpClient >>() ĊĠĠĠĠĠĠĠ Ġval Ġm oshi Ġ= Ġmock k < M oshi >() ĊĊĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= Ġnetwork Module . provide Ret rofit ( client , Ġm oshi ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Build Config . BASE _ URL , Ġretrofit . baseUrl (). to Url (). toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġprovided Ġequ ity Ġservice `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmovie Service Ġ= Ġmock k < Movie Service >() ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit . create < Movie Service >() ĊĠĠĠĠĠĠĠ Ġ} Ġreturns Ġmovie Service ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Service Ġ= Ġnetwork Module . provide Movie Service ( ret rofit ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( movie Service , Ġactual Service ) ĊĠĠĠ Ġ} Ċ } Ċ