package Ġcom . es cod ro . domain . use case . preferences Ċ Ċ import Ġcom . es cod ro . domain . model . App Theme Options Ċ import Ġcom . es cod ro . domain . use case . fake . Preferences Repository Fake Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ @ Opt In ( Experimental Cor outines Api :: class ) Ċ internal Ġclass ĠApp Theme Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpreferences Repository Ġ= ĠPreferences Repository Fake () ĊĊĠĠĠ Ġprivate Ġval Ġupdate App Theme Ġ= ĠUpdate App Theme ( preferences Repository ) ĊĊĠĠĠ Ġprivate Ġval Ġload App Theme Ġ= ĠLoad App Theme ( preferences Repository ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġif Ġtheme Ġis Ġupdated `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . DARK ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġload App Theme (). first () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( App Theme Options . DARK , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġif Ġlast Ġupdated Ġtheme Ġis Ġthe Ġone Ġvalid `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . LIGHT ) ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . SYSTEM ) ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . DARK ) ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . LIGHT ) ĊĠĠĠĠĠĠĠ Ġupdate App Theme ( App Theme Options . DARK ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġload App Theme (). first () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( App Theme Options . DARK , Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ