/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 8 ĠK eval ĠP ate l . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . stand up . core . repo Ċ Ċ import Ġcom . ke val p ate l 2 1 0 6 . common . user Activity . Daily Activity Summary Ċ import Ġcom . ke val p ate l 2 1 0 6 . common . user Activity . User Activity Ċ import Ġcom . ke val p ate l 2 1 0 6 . common . user Activity . User Activity Dao Mock Impl Ċ import Ġcom . ke val p ate l 2 1 0 6 . common . user Activity . User Activity Type Ċ import Ġcom . ke val p ate l 2 1 0 6 . test utils . Mock Server Manager Ċ import Ġcom . ke val p ate l 2 1 0 6 . utils . Time Utils Ċ import Ġio . reactivex . subscribers . Test Subscriber Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠK eval p ate l 2 1 0 6 Ġon Ġ 0 1 - Jan - 1 8 . Ċ Ġ* Ċ Ġ* Ġ@ author Ġ[ ke val p ate l 2 1 0 6 ]( https :// github . com / ke val p ate l 2 1 0 6 ) Ċ Ġ*/ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠCore Repo Impl Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcore Repo Impl : ĠCore Repo Impl ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Activity Dao : ĠUser Activity Dao Mock Impl ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock WebServer Manager : ĠMock Server Manager ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Mock Ġnetwork Ġset ĊĠĠĠĠĠĠĠ Ġmock WebServer Manager Ġ= ĠMock Server Manager () ĊĠĠĠĠĠĠĠ Ġmock WebServer Manager . start Mock WebServer () ĊĊĠĠĠĠĠĠĠ Ġ// Mock Ġdatabase Ġtable ĊĠĠĠĠĠĠĠ Ġuser Activity Dao Ġ= ĠUser Activity Dao Mock Impl ( ArrayList ()) ĊĊĠĠĠĠĠĠĠ Ġcore Repo Impl Ġ= ĠCore Repo Impl ( user Activity Dao ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġtear Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock WebServer Manager . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Load Y esterday Summary _ No Activity In Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Subscribe Ġ= ĠTest Subscriber < Daily Activity Summary >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcore Repo Impl . load Y esterday Summary (). subscribe ( test Subscribe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . await Terminal Event () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . assert No Errors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Count ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Load Y esterday Summary _ No Activity In Db For Y esterday () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoday 1 2 am Ġ= ĠTime Utils . today Mid night M ills () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Set Ġfake Ġdata . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Tod ays Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Activity Dao . insert ( User Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent StartTime M ills Ġ= Ġtoday 1 2 am , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent EndTime M ills Ġ= Ġtoday 1 2 am Ġ+ Ġ 4 2 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sync ed Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠUser Activity Type . MOV ING . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// 3 Ġdays Ġbefore Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Activity Dao . insert ( User Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent StartTime M ills Ġ= Ġtoday 1 2 am Ġ- Ġ 2 Ġ* ĠTime Utils . ONE _ DAY _ MILLISECONDS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent EndTime M ills Ġ= Ġtoday 1 2 am Ġ- Ġ 2 Ġ* ĠTime Utils . ONE _ DAY _ MILLISECONDS Ġ+ Ġ 3 6 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sync ed Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠUser Activity Type . MOV ING . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Subscribe Ġ= ĠTest Subscriber < Daily Activity Summary >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcore Repo Impl . load Y esterday Summary (). subscribe ( test Subscribe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . await Terminal Event () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . assert No Errors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Count ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail ( e . printStackTrace (). toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Load Y esterday Summary _ Activity In Db For Y esterday () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyesterday 1 2 am Ġ= ĠTime Utils . today Mid night M ills () Ġ- ĠTime Utils . ONE _ DAY _ MILLISECONDS ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Set Ġfake Ġdata . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Activity Dao . insert ( User Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent StartTime M ills Ġ= Ġyesterday 1 2 am , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent EndTime M ills Ġ= Ġyesterday 1 2 am Ġ+ Ġ 3 6 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sync ed Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠUser Activity Type . MOV ING . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Activity Dao . insert ( User Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent StartTime M ills Ġ= Ġyesterday 1 2 am Ġ+ Ġ 3 7 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent EndTime M ills Ġ= Ġyesterday 1 2 am Ġ+ Ġ 4 0 0 0 _ 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sync ed Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠUser Activity Type . S IT TING . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Subscribe Ġ= ĠTest Subscriber < Daily Activity Summary >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcore Repo Impl . load Y esterday Summary (). subscribe ( test Subscribe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . await Terminal Event () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Cal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday Cal . add ( Calendar . DAY _ OF _ MONTH , Ġ- 1 ) ĠĠĠĠĠĠ Ġ// Previous Ġday ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Subscribe . assert No Errors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Count ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value At ( 0 , Ġ{ Ġit . day Activity . size Ġ== Ġuser Activity Dao . table Items . size Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value At ( 0 , Ġ{ Ġit . day OfMonth Ġ== Ġday Cal . get ( Calendar . DAY _ OF _ MONTH ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value At ( 0 , Ġ{ Ġit . month OfYear Ġ== Ġday Cal . get ( Calendar . MONTH ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value At ( 0 , Ġ{ Ġit . year Ġ== Ġday Cal . get ( Calendar . YEAR ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail ( e . printStackTrace (). toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ