package Ġcom . dist ill ery . android . blueprint s . m vi . feature . todo Ċ Ċ import Ġcom . dist ill ery . android . blueprint s . m vi . todo . state . Todo State Ċ import Ġcom . dist ill ery . android . blueprint s . m vi . todo . use cases . Delete Task UseCase Ċ import Ġcom . dist ill ery . android . domain . ToDo Repository Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . core . context . stop K oin Ċ import Ġorg . k oin . dsl . module Ċ import Ġorg . k oin . test . K oin Test Ċ import Ġorg . mockito . BDD Mockito Ċ import Ġorg . mockito . BDD Mockito . given Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito .` when ` Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġjava . lang . RuntimeException Ċ import Ġjava . net . Connect Exception Ċ Ċ class ĠDelete Task UseCase Test Ġ: ĠK oin Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Repo : ĠTo Do Repository ĊĊĠĠĠ Ġprivate Ġval Ġdelete Task UseCase Ġ= ĠDelete Task UseCase () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle < ToDo Repository > Ġ{ Ġmock Repo Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġsuc ces fully Ġnew Ġtask `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( mock Repo . delete ToDo ( UNIQUE _ ID )). thenReturn ( Unit ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdelete Task UseCase . delete Tasks ( UNIQUE _ ID ) ĊĠĠĠĠĠĠĠ Ġresult . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( it Ġis ĠTodo State . Confirmation State ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` error Ġadding Ġnew Ġtask `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠConnect Exception (" Test Exception ") ĊĠĠĠĠĠĠĠ Ġgiven ( mock Repo . delete ToDo ( UNIQUE _ ID )). will Answer Ġ{ Ġthrow Ġexception Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdelete Task UseCase . delete Tasks ( UNIQUE _ ID ) ĊĠĠĠĠĠĠĠ Ġresult . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( it Ġis ĠTodo State . Error State ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( exception , Ġ( it Ġas ĠTodo State . Error State ). error Msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop K oin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUNIQUE _ ID Ġ= Ġ 1 0 L ĊĠĠĠ Ġ} Ċ } Ċ