package Ġcom . mit te lo upe . random gen kt example . domain Ċ Ċ import Ġcom . mit te lo upe . random gen kt . Random Gen Ċ import Ġcom . mit te lo upe . random gen kt example . data . generator . Person Generator Factory Ċ import Ġcom . mit te lo upe . random gen kt example . data . model . person . Person Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . given Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠEr an ĠB ou dj nah Ġon Ġ 0 1 / 1 1 / 2 0 1 8 . Ċ Ġ*/ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠGenerate Person UseCase Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcut : ĠGenerate Person UseCase ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcoroutine Context Provider : ĠCor outine Context Provider ĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġperson Generator Factory : ĠPerson Generator Factory ĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġperson Generator : ĠRandom Gen < Person > ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġcoroutine Context Provider Ġ= Ġtest Coroutine Context Provider () ĊĠĠĠĠĠĠĠ Ġgiven ( person Generator Factory . new Person Generator ). willReturn ( person Generator ) ĊĊĠĠĠĠĠĠĠ Ġcut Ġ= ĠGenerate Person UseCase ( coroutine Context Provider , Ġperson Generator Factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Given Ġgenerator Ġwith Ġperson Ġwhen Ġexecute Ġthen Ġreturns Ġsame Ġperson `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġexpected Result Ġ= Ġmock < Person >() ĊĠĠĠĠĠĠĠ Ġvar Ġactual Result : ĠPerson ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġgiven ( person Generator . generate ()). willReturn ( expected Result ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut . execute Ġ{ Ġperson Ġ-> Ġactual Result Ġ= Ġperson Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Result , Ġactual Result ) ĊĠĠĠ Ġ} Ċ }