package Ġio . github . j wg ib ane z . car track . data . db Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġio . github . j wg ib ane z . car track . TestUtil Ċ import Ġio . github . j wg ib ane z . car track . data . model . Account Ċ import Ġio . github . j wg ib ane z . car track . data . model . User Ċ import Ġorg . hamcrest . Core Matchers . equalTo Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . io . IOException Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠApp Database Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccount Dao : ĠAccount Dao ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Dao : ĠUser Dao ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdb : ĠApp Database ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġcreate Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠApplication Provider . getApplicationContext < Context >() ĊĠĠĠĠĠĠĠ Ġdb Ġ= ĠRoom . in Memory Database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠApp Database :: class . java ). build () ĊĠĠĠĠĠĠĠ Ġaccount Dao Ġ= Ġdb . account Dao () ĊĠĠĠĠĠĠĠ Ġuser Dao Ġ= Ġdb . user Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġclose Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġwrite Account And Read () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount : ĠAccount Ġ= ĠTest Util . create Account ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" admin ", Ġ" pass 1 2 3 4 ", Ġ" Sing apore " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġaccount Dao . insert All ( account ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Db Ġ= Ġaccount Dao . find (" admin ") ĊĠĠĠĠĠĠĠ ĠassertThat ( from Db , ĠequalTo ( account )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġwrite User And Read () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser : ĠUser Ġ= ĠTest Util . createUser ( 1 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Lean ne ĠGra ham " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġ" B ret " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġ" S inc ere @ apr il . biz " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= ĠTest Util . create Address (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstreet Ġ= Ġ" K ulas ĠLight " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuite Ġ= Ġ" A pt . Ġ 5 5 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġ" G wen bor ough " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzip code Ġ= Ġ" 9 2 9 9 8 - 3 8 7 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgeo Ġ= ĠTest Util . create Geo (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat Ġ= Ġ"- 3 7 . 3 1 5 9 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlng Ġ= Ġ" 8 1 . 1 4 9 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphone Ġ= Ġ" 1 - 7 7 0 - 7 3 6 - 8 0 3 1 Ġx 5 6 4 4 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwebsite Ġ= Ġ" hil deg ard . org " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompany Ġ= ĠTest Util . create Company (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Rom ag u era - Cron a " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Phrase Ġ= Ġ" Multi - layer ed Ġclient - server Ġneural - net " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbs Ġ= Ġ" h arness Ġreal - time Ġe - mark ets " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( user ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Db Ġ= Ġuser Dao . find ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( from Db , ĠequalTo ( user )) ĊĠĠĠ Ġ} Ċ }