package Ġcom . s ild ian . apps . to ge trail . h iker . model . data Requests Ċ Ċ import Ġcom . google . firebase . Firebase Exception Ċ import Ġcom . s ild ian . apps . to ge trail . common . utils . cloud Helpers . Auth Repository Ċ import Ġcom . s ild ian . apps . to ge trail . common . utils . cloud Helpers . Storage Repository Ċ import Ġcom . s ild ian . apps . to ge trail . data Request Test Support . Base Data Request Test Ċ import Ġcom . s ild ian . apps . to ge trail . data Request Test Support . Firebase Simulator Ċ import Ġcom . s ild ian . apps . to ge trail . h iker . model . core . H iker Ċ import Ġcom . s ild ian . apps . to ge trail . h iker . model . data Repository . H iker Repository Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Test Ċ Ċ class ĠH iker SaveData Request Test : ĠBase Data Request Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ request Failure _ when _ save H iker _ then _ check H iker IsNot Saved () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Simulator . request Should Fail Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh iker Ġ= ĠH iker ( id Ġ= Ġ" HA ", Ġname Ġ= Ġ" H iker ĠA ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Request Ġ= ĠH iker SaveData Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh iker , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStorage Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH iker Repository () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Request . execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" TRUE ", Ġ" FALSE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFirebase Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( Firebase Simulator . h ik ers . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ null H iker _ when _ save H iker _ then _ check H iker IsNot Saved () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Request Ġ= ĠH iker SaveData Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStorage Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH iker Repository () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Request . execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" TRUE ", Ġ" FALSE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( Firebase Simulator . h ik ers . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ h iker _ when _ save H iker _ then _ check H iker Is Saved () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh iker Ġ= ĠH iker ( id Ġ= Ġ" HA ", Ġname Ġ= Ġ" H iker ĠA ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Request Ġ= ĠH iker SaveData Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh iker , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStorage Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH iker Repository () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Request . execute () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( Firebase Simulator . h ik ers . first OrNull Ġ{ Ġit . id Ġ== Ġ" HA " Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ h iker With Images _ when _ save H iker _ then _ check H iker Is Saved With Images () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Simulator . storage Urls . add (" Old Ġimage ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh iker Ġ= ĠH iker ( id Ġ= Ġ" HA ", Ġname Ġ= Ġ" H iker ĠA ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Request Ġ= ĠH iker SaveData Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh iker , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Old Ġimage ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" New Ġimage ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStorage Repository (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH iker Repository () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Request . execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh iker From Db Ġ= ĠFirebase Simulator . h ik ers . first OrNull Ġ{ Ġit . id Ġ== Ġ" HA " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( h iker From Db ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" New Ġimage ", Ġh iker From Db ?. photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( Firebase Simulator . storage Urls . contains (" Old Ġimage ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( Firebase Simulator . storage Urls . contains (" New Ġimage ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }