import Ġcom . architect coders . data . repository . Network Repository Ċ import Ġcom . architect coders . data . source . Network DataSource Ċ import Ġkotlinx . coroutines . run Blocking Ċ 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 . mockito . kotlin . any Ċ import Ġorg . mockito . kotlin . verify Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠNetwork Repository Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġlistener : Ġ( Boolean ) Ġ-> ĠUnit ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġnetwork DataSource : ĠNetwork DataSource ĊĊĠĠĠ Ġlateinit Ġvar Ġnetwork Repository : ĠNetwork Repository ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Repository Ġ= ĠNetwork Repository ( network DataSource ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġif Ġhandle Network Manager Ġis Ġinvoked ` (): ĠUnit Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Repository . handle Network Manager ( listener ) ĊĠĠĠĠĠĠĠ Ġverify ( network DataSource ). handle Network Manager ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġif Ġunregister Network Callback Ġis Ġinvoked `() Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Repository . clear Networks () ĊĠĠĠĠĠĠĠ Ġverify ( network DataSource ). clear Networks () ĊĠĠĠ Ġ} Ċ } Ċ