package Ġcom . cost ular . le uk s na _ moon _ ph ases . domain Ċ Ċ import Ġcom . cost ular . le uk s na _ moon _ ph ases . domain . model . Moon Info Ċ import Ġcom . cost ular . le uk s na _ moon _ ph ases . domain . model . Moon Phase Ċ import Ġcom . cost ular . le uk s na _ moon _ ph ases . domain . model . Z odi ac Ċ import Ġcom . cost ular . le uk s na _ moon _ ph ases . domain . use case . Get Moon Info UseCase Ċ import Ġcom . cost ular . le uk s na _ moon _ ph ases . presentation . Coroutine Test Ċ import Ġio . kot lint est . TestCase Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġorg . th reet en . bp . LocalDate Ċ import Ġorg . th reet en . bp . LocalDateTime Ċ Ċ @ Experimental Cor outines Api Ċ class ĠGet Moon Info UseCase Test Ġ: ĠCor outine Test () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġget Moon Info UseCase : ĠGet Moon Info UseCase ĊĊĠĠĠ Ġprivate Ġval Ġmoon Repository : ĠMo on Repository Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Test ( testCase : ĠTestCase ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . before Test ( testCase ) ĊĠĠĠĠĠĠĠ Ġget Moon Info UseCase Ġ= ĠGet Moon Info UseCase ( moon Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Given Ġa Ġvalue Ġfrom Ġrepository Ġwhen Ġexecuting Ġthe Ġuse case Ġthen Ġshould Ġreturn Ġthe Ġsame Ġvalue " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠMo on Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMo on Phase . NEW _ MO ON , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 %", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 4 2 0 . 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 8 2 8 3 8 3 . 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ odi ac . PI SC ES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġmoon Repository . get Moon Info ( any ()) Ġ} Ġreturns Ġexpected ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Moon Info UseCase . execute ( Get Moon Info UseCase . Params ( LocalDate . now (), Ġnull , Ġnull )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual . shouldBe ( expected ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ