package Ġcom . vik r ant . event . event List . domain Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġcom . vik r ant . core . model . Event Detail Ċ import Ġcom . vik r ant . core . model . Events Ċ import Ġcom . vik r ant . core . ret rofit client . Result State Ċ import Ġcom . vik r ant . event . event List . repository . Event List Repository Ċ import Ġkotlinx . coroutines . flow . as Flow Ċ import Ġkotlinx . coroutines . flow . toList Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠGet Event Listing UseCase Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuse Case Get : ĠGet Event Listing UseCase ĊĠĠĠ Ġprivate Ġval Ġevent Detail Ġ= ĠEvent Detail ( ĊĠĠĠĠĠĠĠ Ġ" type ", ĊĠĠĠĠĠĠĠĠ 1 2 3 , ĊĠĠĠĠĠĠĠ Ġven ue Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠdateTime Ġ= Ġ" dateTime ", ĊĠĠĠĠĠĠĠ Ġperform ers Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshort Title Ġ= Ġ" short Title " ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġevent Details Ġ= ĠlistOf < Result State < Events >>( ĊĠĠĠĠĠĠĠ ĠResult State . Success ( Events ( 1 , ĠlistOf ( event Detail ))) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġval Ġrepository Ġ= Ġmock < Event List Repository >() ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġuse Case Get Ġ= ĠGet Event Listing UseCase ( repository ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Success Test () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// given ĊĠĠĠĠĠĠĠ Ġwhenever ( repository . get Events ()). thenReturn ( event Details . as Flow ()) ĊĠĠĠĠĠĠĠ Ġ// when ĊĠĠĠĠĠĠĠ Ġval Ġevents Ġ= Ġuse Case Get . execute (). toList () ĊĠĠĠĠĠĠĠ Ġ// then ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( events , Ġevent Details ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Failure Test () Ġ= Ġrun Blocking Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// given ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠlistOf ( Result State . Failure < Events >( Exception (" Exception Ġoccur "))) ĊĠĠĠĠĠĠĠ Ġwhenever ( repository . get Events ()). thenReturn ( response . as Flow ()) ĊĊĠĠĠĠĠĠĠ Ġ// when ĊĠĠĠĠĠĠĠ Ġval Ġevents Ġ= Ġ Ġuse Case Get . execute (). toList () ĊĠĠĠĠĠĠĠ Ġ// then ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( events , Ġresponse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Loading Test () Ġ= Ġrun Blocking Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// given ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠlistOf ( Result State . Progress < Events >()) ĊĠĠĠĠĠĠĠ Ġwhenever ( repository . get Events ()). thenReturn ( response . as Flow ()) ĊĊĠĠĠĠĠĠĠ Ġ// when ĊĠĠĠĠĠĠĠ Ġval Ġevents Ġ= Ġuse Case Get . execute (). toList () ĊĠĠĠĠĠĠĠ Ġ// then ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( events , Ġresponse ) ĊĠĠĠ Ġ} Ċ Ċ }