package Ġcom . clean . domain . use case Ċ Ċ import Ġcom . clean . domain . entity . Post Ċ import Ġcom . clean . domain . repository . Post Repository Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . flow . flow Of Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . wh enever ĊĊ Ċ class ĠGet Post UseCase Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpost Repository Ġ= Ġmock < Post Repository >() ĊĠĠĠ Ġprivate Ġval Ġuse Case Ġ= ĠGet Post UseCase ( ĊĠĠĠĠĠĠĠ Ġmock (), ĊĠĠĠĠĠĠĠ Ġpost Repository ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Process () Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠGet Post UseCase . Request ( 0 L ) ĊĠĠĠĠĠĠĠ Ġval Ġpost Ġ= ĠPost ( 1 L , Ġ 1 L , Ġ" title ", Ġ" body ") ĊĠĠĠĠĠĠĠ Ġwhenever ( post Repository . getPost ( request . post Id )). thenReturn ( flow Of ( post )) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġuse Case . process ( request ). first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( Get Post UseCase . Response ( post ), Ġresponse ) ĊĠĠĠ Ġ} Ċ }