// /* Ċ // Ġ* ĠModule : Ġr 2 - test app - kotlin Ċ // Ġ* ĠDevelopers : ĠA fer d ita ĠM uri qi , ĠMost aph a ĠI doub i hi , ĠPaul ĠSto ica Ċ // Ġ* Ċ // Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 . ĠEuropean ĠDigital ĠReading ĠLab . ĠAll Ġrights Ġreserved . Ċ // Ġ* ĠLicensed Ġto Ġthe ĠRead ium ĠFoundation Ġunder Ġone Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ċ // Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġa ĠBSD - style Ġlicense Ġwhich Ġis Ġdetailed Ġin Ġthe Ċ // Ġ* ĠLICENSE Ġfile Ġpresent Ġin Ġthe Ġproject Ġrepository Ġwhere Ġthis Ġsource Ġcode Ġis Ġmaintained . Ċ // Ġ*/ Ċ // Ċ // package Ġorg . read ium . r 2 Ċ // Ċ // import Ġandroid . content . Context Ċ // import Ġorg . read ium . r 2 . shared . Locator Ċ // import Ġorg . read ium . r 2 . test app . Locator Ċ // import Ġorg . read ium . r 2 . test app . Book marks Database Ċ // Ċ // /** Ċ // Ġ* ĠUnit Ġtests Ġfor Ġthe ĠBook marks Database Ġhelpers Ġwith Ġd um m ies ĠBook marks Ċ // Ġ*/ Ċ // class ĠTest Book marks Database ( val Ġcontext : ĠContext ) Ġ{ Ċ // Ċ // ĠĠĠ Ġval Ġb mk _ db Ġ= ĠBook marks Database ( context ) Ċ // ĠĠĠ Ġval Ġb mk _ list Ġ= Ġmutable ListOf < Locator >() Ċ // ĠĠĠ Ġval Ġwrong _ b mk _ list Ġ= Ġmutable ListOf < Locator >() Ċ // Ċ // ĠĠĠ Ġinit Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġb mk _ list . add ( Locator ( 1 , Ġ 1 , Ġ" dummy ", 0 . 0 )) Ċ // ĠĠĠĠĠĠĠ Ġb mk _ list . add ( Locator ( 2 , Ġ 3 , Ġ" dummy ", 0 . 5 )) Ċ // ĠĠĠĠĠĠĠ Ġb mk _ list . add ( Locator ( 2 , Ġ 3 , Ġ" dummy ", 0 . 5 )) Ċ // ĠĠĠĠĠĠĠ Ġb mk _ list . add ( Locator ( 1 5 , Ġ 1 2 , Ġ" dummy ", 0 . 9 9 9 9 )) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġwrong _ b mk _ list . add ( Locator ( 4 , Ġ 3 4 , Ġ" dummy ", 1 . 3 3 3 3 )) Ċ // ĠĠĠĠĠĠĠ Ġwrong _ b mk _ list . add ( Locator (- 4 , Ġ 3 4 , Ġ" dummy ", 0 . 3 3 3 3 )) Ċ // ĠĠĠĠĠĠĠ Ġwrong _ b mk _ list . add ( Locator ( 4 , Ġ- 3 4 , Ġ" dummy ", 0 . 3 3 3 3 )) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġtest (){ Ċ // ĠĠĠĠĠĠĠ Ġprintln (" ################################ ##### ") Ċ // ĠĠĠĠĠĠĠ Ġprintln (" ######## # ĠĠĠ ĠBook marks ĠĠĠ Ġ######## ### ") Ċ // ĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 Ċ // ĠĠĠĠĠĠĠ Ġb mk _ list . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Book Ġ$ i Ġ: Ġ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Ġ- Ġbook Id Ġ= Ġ${ it . book ID } Ġ(${ it . book ID . java Class }) ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġret Ġ= Ġb mk _ db . bookmarks . insert ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Success Ġ: ĠThe ĠLoc ator Ġwas Ġadded Ġin Ġthe Ġdatabase Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠThe ĠLoc ator Ġcouldn 't Ġbe Ġadded , Ġit Ġexist Ġalready Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠError Ġwhile Ġcommunic ating Ġwith Ġthe Ġdatabase Ġ: Ġ${ e . message }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġret Ġ= Ġb mk _ db . bookmarks . has ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret . isNotEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Success Ġ: ĠThe ĠLoc ator Ġwas Ġfound Ġin Ġthe Ġdatabase Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠThe ĠLoc ator Ġnot Ġfound Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb mk _ db . bookmarks . delete ( ret . first ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret Ġ= Ġdb . bookmarks . has ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret . isNotEmpty ()) Ġ{ Ġprintln (" Delete Ġfailed Ġ: Ġ$ ret Ġ! ") Ġ} Ġelse Ġ{ Ġprintln (" Correct ly Ġdeleted Ġ! ") Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠError Ġwhile Ġcommunic ating Ġwith Ġthe Ġdatabase Ġ: Ġ${ e . message }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġprintln (" List Ġof ĠBook Marks Ġ Ġ: Ġ") Ċ // ĠĠĠĠĠĠĠ Ġb mk _ db . bookmarks . list All (). forEach Ġ{ Ġprintln ( it ) Ġ} Ċ // ĠĠĠĠĠĠĠ Ġprintln (" -------------------------------- ----- ") Ċ // ĠĠĠĠĠĠĠ Ġprintln (" -------- Ġ ĠWrong ĠBook marks Ġ Ġ---------- ") Ċ // ĠĠĠĠĠĠĠ Ġwrong _ b mk _ list . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Book Ġ$ i Ġ: Ġ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Ġ- Ġbook Id Ġ= Ġ${ it . book ID } Ġ(${ it . book ID . java Class }) ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġret Ġ= Ġb mk _ db . bookmarks . insert ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠThe ĠLoc ator Ġshouldn 't Ġhave Ġbeen Ġadded Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Success Ġ: ĠThe ĠLoc ator Ġwasn 't Ġadded Ġin Ġthe Ġdatabase Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠError Ġwhile Ġcommunic ating Ġwith Ġthe Ġdatabase Ġ: Ġ${ e . message }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġret Ġ= Ġb mk _ db . bookmarks . has ( it ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret . isNotEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠThat ĠLoc ator Ġwasn 't Ġsupposed Ġto Ġbe Ġfo unded Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Success Ġ: ĠThat ĠLoc ator Ġisn 't Ġin Ġthe Ġdb Ġ! Ġresult Ġ: Ġ$ ret ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠError Ġwhile Ġcommunic ating Ġwith Ġthe Ġdatabase Ġ: Ġ${ e . message }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġb mk _ db . bookmarks . empty Table () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Book marks Ġcleared Ġwith Ġsuccess Ġ! ") Ċ // ĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Failed Ġ: ĠError Ġwhile Ġcommunic ating Ġwith Ġthe Ġdatabase Ġ: Ġ${ e . message }") Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġprintln (" ######## ### ĠĠĠ ĠEnd ĠĠĠĠ Ġ######## ###### ") Ċ // ĠĠĠĠĠĠĠ Ġprintln (" ################################ ##### ") Ċ // ĠĠĠ Ġ} Ċ //}