package Ġcom . example . mal food ware . Data Layer Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġandroidx . test . runner . Android JUnit 4 Ċ import Ġcom . example . mal food ware .* Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . util .* Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠDi ary DB Service Test ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcontext 1 : ĠContext ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġdb Helper : ĠFood DB Helper ĊĠĠĠĠĠĠĠ Ġvar ĠTIME 1 : ĠLong ĊĠĠĠĠĠĠĠ Ġvar ĠTIME 2 : ĠLong ĊĠĠĠĠĠĠĠ Ġval ĠUSER Ġ= ĠUser DB Service Test . USER 1 ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar ĠEN TRY 1 : ĠFood Di ary Entry ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar ĠEN TRY 2 : ĠFood Di ary Entry ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( 2 0 2 0 , Ġ 6 , Ġ 2 , Ġ 1 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTIME 1 Ġ= Ġdate . time In Millis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( 2 0 2 0 , Ġ 6 , Ġ 2 0 , Ġ 1 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTIME 2 Ġ= Ġdate . time In Millis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġinit () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext 1 Ġ= ĠInstrument ation Registry . get Instrumentation (). target Context ĊĠĠĠĠĠĠĠ Ġdb Helper Ġ= ĠFood DB Helper ( context 1 ) ĊĠĠĠĠĠĠĠ ĠFile Helper . context Ġ= Ġcontext 1 ĊĠĠĠĠĠĠĠ Ġdb Helper . delete All () ĊĠĠĠĠĠĠĠ ĠUser DB Service . insert User ( db Helper , ĠUSER ) ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 1 : ĠIng redient ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 2 : ĠIng redient ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 3 : ĠIng redient ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 4 : ĠIng redient ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 5 : ĠIng redient ĊĠĠĠĠĠĠĠ Ġvar ĠIN G 6 : ĠIng redient ĊĠĠĠĠĠĠĠ ĠIN G 1 Ġ= ĠIng redient (" Tot illa ", Ġ 3 0 f , Ġ 2 f , Ġ 6 4 f , Ġ 1 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 1 2 4 f ) ĊĠĠĠĠĠĠĠ ĠIN G 2 Ġ= ĠIng redient (" May on aise ", Ġ 8 0 f , Ġ 0 . 5 f , Ġ 0 . 9 2 4 f , Ġ 1 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 6 6 f ) ĊĠĠĠĠĠĠĠ ĠIN G 3 Ġ= ĠIng redient (" Tom ato e ĠS au ce ", Ġ 8 0 f , Ġ 0 f , Ġ 7 . 0 8 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 5 9 f ) ĊĠĠĠĠĠĠĠ ĠIN G 4 Ġ= ĠIng redient (" Che ese ", Ġ 5 8 f , Ġ 0 . 5 f , Ġ 0 . 1 5 2 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 1 5 2 f ) ĊĠĠĠĠĠĠĠ ĠIN G 5 Ġ= ĠIng redient (" Red ĠOn ion ", Ġ 7 5 f , Ġ 0 f , Ġ 4 . 9 5 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 5 5 f ) ĊĠĠĠĠĠĠĠ ĠIN G 6 Ġ= ĠIng redient (" Red ĠP ep per ", Ġ 2 0 f , Ġ 0 f , Ġ 2 . 1 6 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 4 5 f ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIN G 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIN G 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 3 ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 4 ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 5 ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 6 ) ĊĠĠĠĠĠĠĠ Ġvar ĠREC 1 : ĠRecipe ĊĠĠĠĠĠĠĠ ĠREC 1 Ġ= ĠRecipe (" F aj ita ĠP izza ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 1 , Ġ 1 2 4 f ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 2 , Ġ 6 6 f ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 3 , Ġ 5 9 f ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 4 , Ġ 1 5 2 f ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 5 , Ġ 5 5 f ) ĊĠĠĠĠĠĠĠ ĠREC 1 . add Ingredient ( ING 6 , Ġ 4 5 f ) ĊĊĠĠĠĠĠĠĠ ĠIN G 1 Ġ= ĠIng redient (" B read ", Ġ 7 0 f , Ġ 0 f , Ġ 1 9 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 4 7 f ) ĊĠĠĠĠĠĠĠ ĠIN G 2 Ġ= ĠIng redient (" H oney ĠH am ", Ġ 6 9 f , Ġ 2 f , Ġ 0 . 8 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 2 5 f ) ĊĠĠĠĠĠĠĠ ĠIN G 3 Ġ= ĠIng redient (" Let t uce ", Ġ 5 f , Ġ 0 f , Ġ 0 . 8 7 f , Ġ 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 3 0 f ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 1 ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 2 ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 3 ) ĊĊĠĠĠĠĠĠĠ Ġvar ĠREC 2 : ĠRecipe ĊĠĠĠĠĠĠĠ ĠREC 2 Ġ= ĠRecipe (" Ham , Ġche ese , Ġand Ġlet t uce Ġsam m ich ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠREC 2 . add Ingredient ( ING 1 , Ġ 9 4 f ) ĊĠĠĠĠĠĠĠ ĠREC 2 . add Ingredient ( ING 2 , Ġ 1 3 0 f ) ĊĠĠĠĠĠĠĠ ĠREC 2 . add Ingredient ( ING 3 , Ġ 5 0 f ) ĊĠĠĠĠĠĠĠ ĠREC 2 . add Ingredient ( ING 4 , Ġ 1 3 0 f ) ĊĠĠĠĠĠĠĠ ĠRecipe DB Service . insert Recipe ( db Helper , ĠREC 1 ) ĊĠĠĠĠĠĠĠ ĠRecipe DB Service . insert Recipe ( db Helper , ĠREC 2 ) ĊĊĠĠĠĠĠĠĠ ĠREC 2 Ġ= ĠRecipe (" Test Ġrecipe Ġ 1 0 0 g car bs Ġ 1 0 port ions ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠIN G 1 Ġ= ĠIng redient (" Test ĠIng redient Ġ 1 g car bs Ġ 1 gport ", Ġ 0 f , Ġ 0 f , Ġ 1 f , ĊĠĠĠĠĠĠĠĠ 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ ĠIng redient DB Service . insert Ingredient ( db Helper , ĠIN G 1 ) ĊĠĠĠĠĠĠĠ ĠREC 2 . add Ingredient ( ING 1 , Ġ 1 0 0 f ) ĊĠĠĠĠĠĠĠ ĠRecipe DB Service . insert Recipe ( db Helper , ĠREC 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġentries ĊĠĠĠĠĠĠĠ ĠEN TRY 1 Ġ= ĠFood Di ary Entry ( TIME 1 ) ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . add Recipe ( REC 1 , Ġ 5 0 1 f ) ĊĠĠĠĠĠĠĠ ĠDi ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 1 , ĠUSER . uid ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġnew Entry Ġ= ĠFood Di ary Entry ( TIME 1 Ġ+ Ġ( 3 6 0 0 0 0 0 )) ĊĠĠĠĠĠĠĠ Ġnew Entry . add Recipe ( REC 2 , Ġ 1 0 0 f ) ĊĠĠĠĠĠĠĠ ĠDi ary DB Service . insert Di ary Entry ( db Helper , Ġnew Entry , ĠUSER . uid ) ĊĊĠĠĠĠĠĠĠ ĠEN TRY 2 Ġ= ĠFood Di ary Entry ( TIME 2 ) ĊĠĠĠĠĠĠĠ ĠEN TRY 2 . add Ingredient ( ING 1 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 2 . add Recipe ( REC 1 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 2 . add Recipe ( REC 2 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . add Ingredient ( ING 1 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . add Ingredient ( ING 3 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . add Ingredient ( ING 6 , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠDi ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 2 , ĠUSER . uid ) ĊĠĠĠĠĠĠĠ ĠLog . d (" LOG ", Ġ" di ary Ġentry Ġjson :\ n ${ ENTRY 1 . toJSON ( 1 )} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Di ary Entries Date 1 Success () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġset Ġ= ĠDi ary DB Service . get Di ary Entries Date ( db Helper , ĠUSER . uid , ĠEN TRY 1 . date String ) ĊĠĠĠĠĠĠĠ Ġprintln (" -------- getTest Date 1 ------ \ n $ set ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġset ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( recipe Ġin Ġentry . recipes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( recipe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . size Ġ== Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Di ary Entries Date 1 Fail () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġset Ġ= ĠDi ary DB Service . get Di ary Entries Date ( db Helper , ĠUSER . uid ," 1 / 7 / 2 0 2 0 ") ĊĠĠĠĠĠĠĠ Ġprintln (" -------- getTest ------ \ n $ set ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . size Ġ== Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Di ary Range 1 Success () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġfrom Arr Ġ= ĠEN TRY 1 . date String . split ('/') ĊĠĠĠĠĠĠĠ Ġvar Ġday Ġ= Ġfrom Arr [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġvar Ġmonth Ġ= Ġfrom Arr [ 1 ]. toInt () Ġ- 1 ĊĠĠĠĠĠĠĠ Ġvar Ġyear Ġ= Ġfrom Arr [ 2 ]. toInt () ĊĠĠĠĠĠĠĠ Ġcal . set ( year , Ġmonth , Ġday , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Milli Ġ= Ġcal . time In Millis ĊĠĠĠĠĠĠĠ Ġcal . set ( 2 0 2 0 , Ġ 6 , Ġ 2 , Ġ 2 3 , Ġ 5 9 , Ġ 5 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġto Milli Ġ= Ġcal . time In Millis ĊĠĠĠĠĠĠĠ Ġvar Ġset Ġ= ĠDi ary DB Service . get Di ary Entries DateRange ( db Helper , ĠUSER . uid , Ġfrom Milli , Ġto Milli ) ĊĠĠĠĠĠĠĠ Ġprintln (" -------- getTest Range 1 ------ \ n $ set ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . size Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Di ary Range 2 Success () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġfrom Arr Ġ= ĠEN TRY 1 . date String . split ('/') ĊĠĠĠĠĠĠĠ Ġvar Ġday Ġ= Ġfrom Arr [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġvar Ġmonth Ġ= Ġfrom Arr [ 1 ]. toInt () Ġ- 1 ĊĠĠĠĠĠĠĠ Ġvar Ġyear Ġ= Ġfrom Arr [ 2 ]. toInt () ĊĠĠĠĠĠĠĠ Ġcal . set ( year , Ġmonth , Ġday , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Milli Ġ= Ġcal . time In Millis ĊĠĠĠĠĠĠĠ Ġval Ġto Arr Ġ= ĠEN TRY 2 . date String . split ('/') ĊĠĠĠĠĠĠĠ Ġday Ġ= Ġto Arr [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġmonth Ġ= Ġto Arr [ 1 ]. toInt () Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġyear Ġ= Ġto Arr [ 2 ]. toInt () ĊĠĠĠĠĠĠĠ Ġcal . set ( year , Ġmonth , Ġday , Ġ 2 3 , Ġ 5 9 , Ġ 5 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġto Milli Ġ= Ġcal . time In Millis ĊĠĠĠĠĠĠĠ Ġvar Ġset Ġ= ĠDi ary DB Service . get Di ary Entries DateRange ( db Helper , ĠUSER . uid , Ġfrom Milli , Ġto Milli ) ĊĠĠĠĠĠĠĠ Ġprintln (" -------- getTest ------ \ n $ set ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( set . size Ġ== Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Di ary Entry Fail Duplicate () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( Di ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 1 , ĠUSER . uid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Di ary Entry Fail Rec FK () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrec Ġ= ĠRecipe (" new Rec ") ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . add Recipe ( rec , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( Di ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 1 , ĠUSER . uid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Di ary Entry Fail Ing FK () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġing Ġ= ĠIng redient (" New ĠIng ", Ġ 0 f , 0 f , 0 f , 0 f , 0 f , ĊĠĠĠĠĠĠĠĠ 0 f , 1 f ) ĊĠĠĠĠĠĠĠ ĠEN TRY 2 . add Ingredient ( ing , Ġ 1 f ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( Di ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 2 , ĠUSER . uid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Di ary Entry Fail UID FK () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠEN TRY 1 . time Millis Ġ= ĠEN TRY 1 . time Millis Ġ+ Ġ 2 0 0 ĊĠĠĠĠĠĠĠ ĠassertFalse ( Di ary DB Service . insert Di ary Entry ( db Helper , ĠEN TRY 2 , Ġ" Some User ")) ĊĠĠĠ Ġ} Ċ } Ċ