package Ġuk . n hs . n hs x . covid 1 9 . android . app . common Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . Supported Language Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . Supported Language . EN GL ISH Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . Supported Language . W EL SH Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . Application Locale Provider . Companion . APPLICATION _ LANGUAGE _ KEY Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . settings . languages . GetDefault System Language Ċ import Ġjava . util . Locale Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNull Ċ Ċ class ĠApplication Locale Provider Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġshared Preferences Ġ= Ġmock k < SharedPreferences >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġshared Preferences Editor Ġ= Ġmock k < SharedPreferences . Editor >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval ĠgetDefault System Language Ġ= Ġmock k < GetDefault System Language >() ĊĊĠĠĠ Ġprivate Ġval Ġtest Subject Ġ= ĠApplication Locale Provider ( shared Preferences , ĠgetDefault System Language ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠ Ġ} Ġreturns Ġshared Preferences Editor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` no Ġsaved Ġlanguage Ġreturns Ġdefault Ġlocale `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġshared Preferences . all [ APPLICATION _ LANGUAGE _ KEY ] Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠgetDefault System Language () Ġ} Ġreturns ĠEN GL ISH ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . getLocale () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Locale ( EN GL ISH . code !! ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` saved Ġlanguage Ġreturns Ġlocale Ġwith Ġthat Ġlanguage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġshared Preferences . all [ APPLICATION _ LANGUAGE _ KEY ] Ġ} Ġreturns Ġ" en " ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . getLocale () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Locale ( test Subject . language Code !! ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` no Ġsaved Ġlanguage Ġreturns Ġno Ġlanguage `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġshared Preferences . all [ APPLICATION _ LANGUAGE _ KEY ] Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . getUser Selected Language () ĊĊĠĠĠĠĠĠĠ ĠassertNull ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` saved Ġsupported Ġlanguage Ġreturns Ġthat Ġlanguage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġshared Preferences . all [ APPLICATION _ LANGUAGE _ KEY ] Ġ} Ġreturns Ġ" cy " ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . getUser Selected Language () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( W EL SH , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` saved Ġunsupported Ġlanguage Ġreturns Ġno Ġlanguage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġshared Preferences . all [ APPLICATION _ LANGUAGE _ KEY ] Ġ} Ġreturns Ġ" xy " ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . getUser Selected Language () ĊĊĠĠĠĠĠĠĠ ĠassertNull ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` getDefault System Language Ġdeleg ates Ġcall Ġto Ġinter actor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Default System Language Ġ= Ġmock k < Supported Language >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠgetDefault System Language () Ġ} Ġreturns Ġexpected Default System Language ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠgetDefault System Language () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Default System Language , Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ