package Ġcom . bur han r ash id 5 2 . samples . db Test Ċ Ċ import Ġandroid . arch . persistence . room . Room Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . test . runner . Android JUnit 4 Ċ import Ġcom . bur han r ash id 5 2 . samples . room Db . App Database Ċ import Ġcom . bur han r ash id 5 2 . samples . room Db . User Ċ import Ġcom . bur han r ash id 5 2 . samples . room Db . User Dao Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNot Equals Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito Annotations Ċ Ċ /** Ċ Ġ* ĠInstrument ed Ġtest , Ġwhich Ġwill Ġexecute Ġon Ġan ĠAndroid Ġdevice . Ċ Ġ* Ċ Ġ* ĠSee Ġ[ testing Ġdocumentation ]( http :// d . android . com / tools / testing ). Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠRoom Instrument ed Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm DB : ĠApp Database ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Dao : ĠUser Dao ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup Room () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠMockito Ġhas Ġa Ġvery Ġconvenient Ġway Ġto Ġinject Ġmocks Ġby Ġusing Ġthe Ġ@ Mock Ġannotation . ĠTo ĊĠĠĠĠĠĠĠ Ġ// Ġinject Ġthe Ġmocks Ġin Ġthe Ġtest Ġthe Ġinit Mocks Ġmethod Ġneeds Ġto Ġbe Ġcalled . ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠMockito . mock ( Context :: class . java ) ĊĠĠĠĠĠĠĠ Ġm DB Ġ= ĠRoom . in Memory Database Builder ( context , ĠApp Database :: class . java ). build () ĊĠĠĠĠĠĠĠ Ġuser Dao Ġ= Ġm DB . user Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Single User Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( User ( 1 , Ġ" Bur han udd in ", Ġ" R ash id ")) ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Dao . find ByName (" Bur han udd in ", Ġ" R ash id ") ĊĠĠĠĠĠĠĠ ĠassertEquals (" Bur han udd in ", Ġuser . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" R ash id ", Ġuser . lastName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Bulk Users Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser List Ġ= ĠDummy Util . get Dummy User ( 0 .. 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( user List ) ĊĠĠĠĠĠĠĠ Ġval ĠgetAll Users Ġ= Ġuser Dao . getAll ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠgetAll Users . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( user List [ i ], ĠgetAll Users [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete User Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser List Ġ= ĠDummy Util . get Dummy User ( 0 .. 2 0 ) ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( user List ) ĊĠĠĠĠĠĠĠ Ġuser Dao . delete ( user List [ 5 ]) ĊĠĠĠĠĠĠĠ Ġval Ġuser ById Ġ= Ġuser Dao . find User ById ( user List [ 5 ]. uid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġuser ById ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete User Failed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser List Ġ= ĠDummy Util . get Dummy User ( 0 .. 2 0 ) ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( user List ) ĊĠĠĠĠĠĠĠ Ġuser Dao . delete ( user List [ 5 ]) ĊĠĠĠĠĠĠĠ Ġval Ġuser ById Ġ= Ġuser Dao . find User ById ( user List [ 6 ]. uid ) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( null , Ġuser ById ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate User Failed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdummy User Ġ= ĠDummy Util . get Dummy User ( 0 .. 1 )[ 0 ] ĊĠĠĠĠĠĠĠ Ġdummy User . firstName Ġ= Ġ" Updated " ĊĠĠĠĠĠĠĠ Ġuser Dao . update ( dummy User ) ĊĠĠĠĠĠĠĠ Ġval Ġfind User ById Ġ= Ġuser Dao . find User ById ( dummy User . uid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġfind User ById ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate User Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdummy User Ġ= ĠDummy Util . get Dummy User ( 0 .. 1 )[ 0 ] ĊĠĠĠĠĠĠĠ Ġuser Dao . insert All ( dummy User ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 0 ĠFirst ", Ġdummy User . firstName ) ĊĠĠĠĠĠĠĠ Ġdummy User . firstName Ġ= Ġ" Updated " ĊĠĠĠĠĠĠĠ Ġuser Dao . update ( dummy User ) ĊĠĠĠĠĠĠĠ Ġval Ġfind User ById Ġ= Ġuser Dao . find User ById ( dummy User . uid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( dummy User . firstName , Ġfind User ById . firstName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġm DB . close () ĊĠĠĠ Ġ} Ċ } Ċ