/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠD ere k ĠE ll is . ĠSubject Ġto Ġthe ĠMIT Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġca . ll am ab age l . transp o . tri ps . domain Ċ Ċ import Ġca . ll am ab age l . transp o . data . Test Stops Ċ import Ġca . ll am ab age l . transp o . data . provide Fake Tri ps Repository Ċ import Ġca . ll am ab age l . transp o . tri ps . ui . adapter . Trip Item Ċ import Ġca . ll am ab age l . transp o . utils . provide Fake Cor outines Dispatcher Provider Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ class ĠGet Next Bus Tri ps UseCase Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrepository Ġ= Ġprovide Fake Tri ps Repository () ĊĠĠĠ Ġprivate Ġval ĠgetNext Bus Tri ps Ġ= ĊĠĠĠĠĠĠĠ ĠGet Next Bus Tri ps UseCase ( repository , Ġprovide Fake Cor outines Dispatcher Provider ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġget Ġb ust Ġtri ps Ġthen Ġnumber Ġof Ġtri ps Ġis Ġcorrect `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow Ġ= ĠgetNext Bus Tri ps ( Test Stops . walk ley J asper . id ) ĊĊĠĠĠĠĠĠĠ Ġrepository . get Tri ps ( Test Stops . walk ley J asper . id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtri ps Ġ= Ġflow . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġtri ps . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġget Ġbus Ġtri ps Ġthen Ġorder Ġof Ġtri ps Ġis Ġcorrect `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow Ġ= ĠgetNext Bus Tri ps ( Test Stops . m ack enz ie King . id ) ĊĊĠĠĠĠĠĠĠ Ġrepository . get Tri ps ( Test Stops . m ack enz ie King . id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtri ps Ġ= Ġflow . first () ĊĠĠĠĠĠĠĠ Ġ// ĠVerify Ġsorted Ġorder Ġof Ġtri ps ĊĠĠĠĠĠĠĠ ĠassertTrue ( tri ps . filter Is Instance < Trip Item >(). zip With Next (). all Ġ{ Ġ( first , Ġsecond ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . trip . adjusted Schedule Time Ġ<= Ġsecond . trip . adjusted Schedule Time ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }