package Ġcom . r yn k bit . co ffe est ore . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle .* Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . test . Instrumentation Registry Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . runner . Android JUnit 4 Ċ import Ġcom . r yn k bit . co ffe est ore . data . entity . Customer Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Rule Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠCustomer Dao Test { ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġinstance Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinitialize Database Ġ(){ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġbuild Database () ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Customer (){ ĊĠĠĠĠĠĠĠ Ġval Ġcustomer 1 Ġ= ĠCustomer ( 0 , Ġ" Test Ġ 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġcustomer 2 Ġ= ĠCustomer ( 0 , Ġ" Test Ġ 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġbuild Database () ĊĊĠĠĠĠĠĠĠ Ġdb . customer Dao (). insert All ( customer 1 , Ġcustomer 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcustomers L ived ata Ġ= Ġdb . customer Dao (). findAll () ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers L ived ata ) ĊĠĠĠĠĠĠĠ Ġvar Ġcustomers : ĠMutable List < Customer > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġcustomers L ived ata . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustomers . addAll ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers [ 1 ]) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( customers [ 0 ]. id , Ġcustomers [ 1 ]. id ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers . find Ġ{ Ġit . name Ġ== Ġcustomer 1 . name Ġ}) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( customers . find Ġ{ Ġit . name Ġ== Ġcustomer 2 . name Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Customer (){ ĊĠĠĠĠĠĠĠ Ġval Ġcustomer 1 Ġ= ĠCustomer ( 0 , Ġ" Test Ġ 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġcustomer 2 Ġ= ĠCustomer ( 0 , Ġ" Test Ġ 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġbuild Database () ĊĊĠĠĠĠĠĠĠ Ġdb . customer Dao (). insert All ( customer 1 , Ġcustomer 2 ) ĊĠĠĠĠĠĠĠ Ġdb . customer Dao (). delete ( Customer ( 1 , Ġ"")) ĊĠĠĠĠĠĠĠ Ġdb . customer Dao (). findAll (). observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . size , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild Database (): ĠApp Database Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Context Ġ= ĠApplication Provider . getApplicationContext < Context >() ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠRoom . in Memory Database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Context , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Database :: class . java ĊĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( db ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdb ĊĠĠĠ Ġ} Ċ }