package Ġa mat ere k . movie . domain . use case Ċ Ċ import Ġa mat ere k . base . test . Coroutine Test Ċ import Ġa mat ere k . base . test . co Verify Called On es Ċ import Ġa mat ere k . movie . domain . model . Movie Ċ import Ġa mat ere k . movie . domain . repository . Movie Repository Ċ import Ġio . mock k .* Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠSet F avour ite Movie UseCase Test Ġ: ĠCor outine Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsubject : ĠSet F avour ite Movie UseCase ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Repository : ĠMovie Repository ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġsubject Ġ= ĠSet F avour ite Movie UseCase ( movie Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Movie Id Ġ= Ġ 3 4 5 6 7 8 L ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` WHEN Ġuse Ġcase Ġis Ġinvoked Ġwith Ġis F avour ite Ġset Ġto Ġtrue ĠTHEN Ġcalls Ġrepository 's Ġset Favorite Ġmethod `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` assert Ġthat Ġrepository 's Ġset Favorite Ġis Ġcalled Ġwith `( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` WHEN Ġuse Ġcase Ġis Ġinvoked Ġwith Ġis F avour ite Ġset Ġto Ġfalse ĠTHEN Ġcalls Ġrepository 's Ġset Favorite Ġmethod `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` assert Ġthat Ġrepository 's Ġset Favorite Ġis Ġcalled Ġwith `( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ` assert Ġthat Ġrepository 's Ġset Favorite Ġis Ġcalled Ġwith `( is F avour ite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Movie Ġ= Ġmock k < Movie > Ġ{ Ġevery Ġ{ Ġid Ġ} Ġreturns Ġtest Movie Id Ġ} ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġmovie Repository . set Favorite ( test Movie Id , Ġis F avour ite ) Ġ} Ġjust Ġruns ĊĊĠĠĠĠĠĠĠ Ġsubject ( test Movie , Ġis F avour ite ) ĊĊĠĠĠĠĠĠĠ Ġco Verify Called On es Ġ{ Ġmovie Repository . set Favorite ( test Movie Id , Ġis F avour ite ) Ġ} ĊĠĠĠ Ġ} Ċ }