package Ġcom . sh ere pen ko . android . arch ivari us . logger Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . test . core . app . Application Provider . getApplicationContext Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . work . List enable Worker Ċ import Ġcom . sh ere pen ko . android . arch ivari us . Arch ivari us Ċ import Ġcom . sh ere pen ko . android . arch ivari us . Arch ivari us Analytics Ċ import Ġcom . sh ere pen ko . android . arch ivari us . Arch ivari us Strategy Ċ import Ġcom . sh ere pen ko . android . arch ivari us . data . Log Type Ċ import Ġcom . sh ere pen ko . android . arch ivari us . upload ers . Log Upload Worker Ċ import Ġcom . sh ere pen ko . android . arch ivari us . upload ers . Log Uploader Ċ import Ġcom . sh ere pen ko . android . logger . Base Logger Params Ċ import Ġcom . sh ere pen ko . android . logger . LogLevel Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġjava . io . File Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠArch ivari us Log Writer Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġarch ivari us : ĠArch ivari us ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog Writer : ĠArch ivari us Log Writer ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠArch ivari us Analytics . init ( Test Arch ivari us Analytics ()) ĊĠĠĠĠĠĠĠ ĠArch ivari us Strategy . init ( Test Arch ivari us Strategy ( getApplicationContext ())) ĊĠĠĠĠĠĠĠ Ġarch ivari us Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġlog Writer Ġ= ĠArch ivari us Log Writer ( arch ivari us ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould WriteTo Arch ivari us () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Context Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Logger Params . APPLICATION _ ID Ġto ĠBuild Config . LIBRARY _ PACKAGE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Logger Params . TAG Ġto Ġ" test " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġlog Writer . write ( LogLevel . INFO , Ġlog Context ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġarch ivari us . log ( any ()) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠTest Arch ivari us Analytics Ġ: ĠArch ivari us Analytics . Arch ivari us Analytics Impl Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġreport To Crash ly t ics ( tag : ĠString , Ġe : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠAssertionError ( e ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠTest Arch ivari us Strategy ( ĊĠĠĠ Ġcontext : ĠContext Ċ ) Ġ: ĠArch ivari us Strategy . Arch ivari us Strategy Impl Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠisIn Debug Mode : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġis Log cat Enabled : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġauthority : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġval Ġlog Name : ĠString Ġ= ĠArch ivari us . DEFAULT _ LOG _ NAME ĊĊĠĠĠ Ġoverride Ġval Ġrotate File Post fix : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġval Ġparent Log Dir : ĠFile Ġ= Ġcontext . files Dir ĊĊĠĠĠ Ġoverride Ġval Ġlog Uploader : ĠLog Uploader Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠLog Uploader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġupload Log ( log File : ĠFile , Ġlog Type : ĠLog Type ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlog Upload Worker : ĠClass < out ĠList enable Worker > Ġ= ĊĠĠĠĠĠĠĠ ĠLog Upload Worker :: class . java Ċ } Ċ