package Ġcom . red iss i . tr akt Ċ Ċ import Ġcom . red iss i . tr akt . services . Authentication Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . junit . BeforeClass Ċ import Ġretrofit 2 . create Ċ import Ġkotlin . test . fail Ċ Ċ abstract Ġclass ĠBase TestCase Ġ{ ĊĠĠĠ Ġinternal Ġclass ĠTest Tr akt Ġ: ĠTr akt Ġ{ ĊĠĠĠĠĠĠĠ Ġconstructor ( apiKey : ĠString ) Ġ: Ġsuper ( apiKey , Ġstaging Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġconstructor ( apiKey : ĠString , Ġclient Secret : ĠString ?, Ġredirect Uri : ĠString ?) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( apiKey , Ġclient Secret , Ġredirect Uri , Ġstaging Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Ok HttpClient Defaults ( builder : ĠOk HttpClient . Builder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . set Ok HttpClient Defaults ( builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġadd Ġlogging Ġstandard Ġoutput Ġis Ġeasier Ġto Ġread ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor ( object Ġ: ĠHttp Logging Interceptor . Logger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlog ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Network Interceptor ( logging ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġauthentication (): ĠAuthentication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create < Staging Authentication >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġval Ġtr akt : ĠTr akt Ġ= ĠBase TestCase . tr akt ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ CLIENT _ ID Ġ= ĠSystem . getProperty (" TR AK T _ CLIENT _ ID ") Ġ?: Ġfail (" No ĠTEST _ CLIENT _ ID ") ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ ACCESS _ TOKEN Ġ= ĠSystem . getProperty (" TR AK T _ ACCESS _ TOKEN ") Ġ?: Ġfail (" No ĠTEST _ CLIENT _ ID ") ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġtr akt Ġ= ĠTest Tr akt ( TEST _ CLIENT _ ID ) ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ PAGE _ SIZE Ġ= Ġ 1 0 ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeClass ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun ĠsetUp Once () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtr akt . accessToken ( TEST _ ACCESS _ TOKEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }