package Ġcom . gar pr . android . features . log Viewer Ċ Ċ import Ġcom . gar pr . android . features . common . view Models . Base ViewModel Test Ċ import Ġcom . gar pr . android . misc . Thread Utils Ċ import Ġcom . gar pr . android . misc . Tim ber Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . k oin . core . inject Ċ Ċ class ĠLog Viewer ViewModel Test Ġ: ĠBase ViewModel Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠLog Viewer ViewModel ĊĊĠĠĠ Ġprotected Ġval Ġthread Utils : ĠThread Utils Ġby Ġinject () ĊĠĠĠ Ġprotected Ġval Ġtim ber : ĠTim ber Ġby Ġinject () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEBUG Ġ= Ġ" DEBUG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠERROR Ġ= Ġ" ERROR " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWARN Ġ= Ġ" WARN " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠLog Viewer ViewModel ( thread Utils , Ġtim ber ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Clear Entries () Ġ{ ĊĠĠĠĠĠĠĠ Ġtim ber . d ( DEBUG , Ġ" one ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( WARN , Ġ" two ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( ERROR , Ġ" three ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġstate : ĠLog Viewer ViewModel . State ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis Fetching States Ġ= Ġmutable ListOf < Boolean >() ĊĊĠĠĠĠĠĠĠ ĠviewModel . state LiveData . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fetching States . add ( it . is Fetching ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . clear Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( state ?. entries . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Clear Entries With Empty Tim ber () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstate : ĠLog Viewer ViewModel . State ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis Fetching States Ġ= Ġmutable ListOf < Boolean >() ĊĊĠĠĠĠĠĠĠ ĠviewModel . state LiveData . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fetching States . add ( it . is Fetching ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . clear Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( state ?. entries . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Fetch Entries () Ġ{ ĊĠĠĠĠĠĠĠ Ġtim ber . d ( DEBUG , Ġ" one ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( WARN , Ġ" two ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( ERROR , Ġ" three ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġstate : ĠLog Viewer ViewModel . State ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis Fetching States Ġ= Ġmutable ListOf < Boolean >() ĊĊĠĠĠĠĠĠĠ ĠviewModel . state LiveData . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fetching States . add ( it . is Fetching ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . fetch Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġstate ?. entries ?. size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Fetch Entries And Clear Entries () Ġ{ ĊĠĠĠĠĠĠĠ Ġtim ber . d ( DEBUG , Ġ" one ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( WARN , Ġ" two ") ĊĠĠĠĠĠĠĠ Ġtim ber . d ( ERROR , Ġ" three ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġstate : ĠLog Viewer ViewModel . State ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis Fetching States Ġ= Ġmutable ListOf < Boolean >() ĊĊĠĠĠĠĠĠĠ ĠviewModel . state LiveData . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fetching States . add ( it . is Fetching ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . fetch Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ?. entries ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġstate ?. entries ?. size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 1 ]) ĊĊĠĠĠĠĠĠĠ ĠviewModel . clear Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( state ?. entries . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 2 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 3 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Fetch Entries With Empty Tim ber () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstate : ĠLog Viewer ViewModel . State ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis Fetching States Ġ= Ġmutable ListOf < Boolean >() ĊĊĠĠĠĠĠĠĠ ĠviewModel . state LiveData . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fetching States . add ( it . is Fetching ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . fetch Entries () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate ?. isEmpty ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate ?. is Fetching ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( state ?. entries . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġis Fetching States . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Fetching States [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Fetching States [ 1 ]) ĊĠĠĠ Ġ} Ċ Ċ } Ċ