package Ġdol phin . android . apps . Blood Service App . provider Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . lifecycle . as LiveData Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġdol phin . android . tests . DataStore Test Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . annotation . Config Ċ Ċ /** Ċ Ġ* ĠSee Ġ[ https :// www . ww t . com / article / testing - android - datastore ] Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ @ Config ( sdk Ġ= Ġ[ Build . VERSION _ CODES . R ]) Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠP refs DataStore Test Ġ: ĠData Store Test () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprefs : ĠP refs DataStore ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs Ġ= ĠP refs DataStore ( data Store Ġ= Ġdata Store ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` change Ġto Ġt ai pe i `() Ġ= Ġrun Cor out une Test Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs . change Center ( 2 ) ĊĠĠĠĠĠĠĠ Ġprefs . center Id . as LiveData (). observe Fore ver Ġ{ Ġactual Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` change Ġto Ġh sin ch u `() Ġ= Ġrun Cor out une Test Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs . change Center ( 3 ) ĊĠĠĠĠĠĠĠ Ġprefs . center Id . as LiveData (). observe Fore ver Ġ{ Ġactual Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` policy Ġcode Ġdefault `() Ġ= Ġrun Cor out une Test Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs . policy Code . as LiveData (). observe Fore ver Ġ{ Ġactual Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` change Ġpolicy Ġcode `() Ġ= Ġrun Cor out une Test Ġ{ ĊĠĠĠĠĠĠĠ Ġprefs . update Policy Code ( 2 0 2 1 1 1 1 0 ) ĊĠĠĠĠĠĠĠ Ġprefs . policy Code . as LiveData (). observe Fore ver Ġ{ Ġactual Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 0 2 1 1 1 1 0 , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ