/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġio . pl aid app . designer news . domain Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin . mock Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġio . pl aid app . core . data . Result Ċ import Ġio . pl aid app . core . designer news . data . stories . St ories Repository Ċ import Ġio . pl aid app . core . designer news . data . stories . model . Story Ċ import Ġio . pl aid app . core . designer news . data . stories . model . Story Response Ċ import Ġio . pl aid app . designer news . story Links Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġjava . lang . Exception Ċ import Ġjava . util . Date Ċ import Ġjava . util . G regorian Calendar Ċ Ċ /** Ċ Ġ* ĠTests Ġfor Ġ[ Get Story UseCase ] Ġmock ing Ġall Ġthe Ġdependencies . Ċ Ġ*/ Ċ class ĠGet Story UseCase Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcreated Date : ĠDate Ġ= ĠG regorian Calendar ( 2 0 1 8 , Ġ 1 , Ġ 1 3 ). time ĊĠĠĠ Ġprivate Ġval Ġstory Id Ġ= Ġ 4 5 L ĊĠĠĠ Ġprivate Ġval Ġstory Response Ġ= ĊĠĠĠĠĠĠĠ ĠStory Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġstory Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Pl aid Ġ 2 . 0 Ġwas Ġreleased ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreated _ at Ġ= Ġcreated Date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinks Ġ= Ġstory Links ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġstory Ġ= ĊĠĠĠĠĠĠĠ ĠStory ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġstory Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Pl aid Ġ 2 . 0 Ġwas Ġreleased ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġcreated Date , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġstory Links . user , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinks Ġ= Ġstory Links ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġstories Repository : ĠSt ories Repository Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġget Story UseCase Ġ= ĠGet Story UseCase ( stories Repository ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Story _ when Story In Repository () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven Ġthat Ġthe Ġrepository Ġreturns Ġa Ġstory Ġrequest Ġfor Ġthe Ġid ĊĠĠĠĠĠĠĠ Ġwhenever ( stories Repository . get Story ( story Id )). thenReturn ( Result . Success ( story Response )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġgetting Ġthe Ġstory ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Story UseCase ( story Id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġstory Ġis Ġreturned ĊĠĠĠĠĠĠĠ ĠassertEquals ( Result . Success ( story ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Story _ when Story NotIn Repository () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven Ġthat Ġthe Ġrepository Ġreturns Ġwith Ġerror ĊĠĠĠĠĠĠĠ Ġwhenever ( stories Repository . get Story ( story Id )). thenReturn ( Result . Error ( Exception (" exception "))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġgetting Ġthe Ġstory ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Story UseCase ( story Id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠError Ġis Ġreturn ĊĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠResult . Error ) ĊĠĠĠ Ġ} Ċ } Ċ