package Ġcom . ap top ay ments . mobile . repository . card . use cases Ċ Ċ import Ġcom . ap top ay ments . mobile . UseCase Test Ċ import Ġcom . ap top ay ments . mobile . data . Test DataProvider Ċ import Ġcom . ap top ay ments . mobile . extension . shouldBe Right And EqualTo Ċ import Ġcom . ap top ay ments . mobile . functional . right Ċ import Ġcom . ap top ay ments . mobile . repository . User Session Repository Ċ import Ġcom . ap top ay ments . mobile . repository . card . local . Card Balance Local Dao Ċ import Ġcom . ap top ay ments . mobile . repository . card . local . Card Local Repository Ċ import Ġcom . ap top ay ments . mobile . repository . card . remote . Card Service Ċ import Ġorg . mockito . kotlin .* Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . k oin . core . context . load K oin Modules Ċ import Ġorg . k oin . dsl . module Ċ import Ġorg . k oin . test . inject Ċ Ċ internal Ġclass ĠGet Card UseCase Test Ġ: ĠUse Case Test () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcard Id Ġ= ĠTest DataProvider . provide Card Id () ĊĠĠĠ Ġval Ġcard Ġ= ĠTest DataProvider . provide Card ( account ID Ġ= Ġcard Id ) ĊĠĠĠ Ġprivate Ġval Ġservice : ĠCard Service Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġcard Local Repo : ĠCard Local Repository Ġ= Ġmock () ĊĊĠĠĠ Ġprivate Ġval Ġuser Case : ĠGet Card UseCase Ġby Ġinject () ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp K oin () Ġ{ ĊĠĠĠĠĠĠĠ Ġload K oin Modules ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle ( override Ġ= Ġtrue ) Ġ{ Ġcard Local Repo Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle ( override Ġ= Ġtrue ) Ġ{ Ġmock < Card Balance Local Dao >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle ( override Ġ= Ġtrue ) Ġ{ Ġmock < User Session Repository >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle ( override Ġ= Ġtrue ) Ġ{ Ġservice Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given ĠCard Local Repo Ġhas Ġdata Ġand Ġrefresh Ġis Ġfalse Ġwhen Ġrun UseCase Ġthen Ġservice Ġdoesn 't Ġget Ġcalled `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( card Local Repo . get Card ( card Id )). thenReturn ( card ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġuser Case . run ( Get Card Params ( card Id Ġ= Ġcard Id , Ġrefresh Ġ= Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġresult . shouldBe Right And EqualTo ( card ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġrefresh Ġis Ġtrue Ġwhen Ġrun UseCase Ġthen Ġservice Ġgets Ġcalled `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( service . get Card ( any ())). thenReturn ( card . right ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġuser Case . run ( Get Card Params ( card Id Ġ= Ġcard Id , Ġrefresh Ġ= Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġresult . shouldBe Right And EqualTo ( card ) ĊĠĠĠ Ġ} Ċ } Ċ