package Ġorg . w ats i . domain . use cases Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin . any Ċ import Ġcom . n ha ar man . mockito _ kotlin . times Ċ import Ġcom . n ha ar man . mockito _ kotlin . verify Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . plugins . Rx Java Plugins Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ import Ġorg . w ats i . domain . factories . Encounter With Extras Factory Ċ import Ġorg . w ats i . domain . repositories . Encounter Repository Ċ import Ġjava . util . UUID Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠPers ist Returned En counters UseCase Test Ġ{ ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġmock Encounter Repository : ĠEn counter Repository ĊĊĠĠĠ Ġlateinit Ġvar Ġuse Case : ĠPers ist Returned En counters UseCase ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠRx Java Plugins . set Io Scheduler Handler Ġ{ ĠS chedulers . tr amp oline () Ġ} ĊĠĠĠĠĠĠĠ Ġuse Case Ġ= ĠPers ist Returned En counters UseCase ( mock Encounter Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencounter 1 Ġ= ĠEn counter With Extras Factory . build () ĊĠĠĠĠĠĠĠ Ġval Ġencounter 2 Ġ= ĠEn counter With Extras Factory . build () ĊĠĠĠĠĠĠĠ Ġval Ġencounter 3 Ġ= ĠEn counter With Extras Factory . build () ĊĠĠĠĠĠĠĠ Ġval Ġencounter 4 Ġ= ĠEn counter With Extras Factory . build () ĊĠĠĠĠĠĠĠ Ġval Ġencounter 5 Ġ= ĠEn counter With Extras Factory . build () ĊĊĠĠĠĠĠĠĠ Ġval Ġrev ised Ids Ġ= Ġ( 1 .. 1 0 ). map Ġ{ ĠUUID . randomUUID () Ġ} Ġ+ ĠlistOf ( en counter 1 . en counter . id , Ġencounter 4 . en counter . id ) ĊĠĠĠĠĠĠĠ Ġwhenever ( mock Encounter Repository . rev ised Ids ()). thenReturn ( Single . just ( rev ised Ids )) ĊĠĠĠĠĠĠĠ Ġwhenever ( mock Encounter Repository . upsert ( listOf ( en counter 2 , Ġencounter 3 , Ġencounter 5 ))). thenReturn ( Comp letable . complete ()) ĊĊĠĠĠĠĠĠĠ Ġuse Case . execute ( listOf ( en counter 1 , Ġencounter 2 , Ġencounter 3 , Ġencounter 4 , Ġencounter 5 )). test (). assert Complete () ĊĠĠĠ Ġ} Ċ } Ċ