package Ġcom . da im ler . mb c ark it . network . service Ċ Ċ import Ġcom . da im ler . mb c ark it . business . model . account link age . Account Type Ċ import Ġcom . da im ler . mb c ark it . network . model . Api Account Link ages Ċ import Ġcom . da im ler . mb c ark it . utils . Api Account Link age Factory Ċ import Ġcom . da im ler . mb c ark it . utils . Response Task TestCase Ċ import Ġcom . da im ler . mb network kit . networking . Http Error Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . Test Coroutine Scope Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . assertj . core . api . Soft Assertions Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġretrofit 2 . Response Ċ Ċ @ Experimental Cor outines Api Ċ internal Ġclass ĠRet rofit Account Link age Service Test Ġ: ĠBase Ret rofit Service Test < Ret rofit Account Link age Service >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġload Accounts Response Ġ= Ġmock k < Response < Api Account Link ages >>() ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Subject ( scope : ĠCor outine Scope ): ĠRet rofit Account Link age Service Ġ= ĊĠĠĠĠĠĠĠ ĠRet rofit Account Link age Service ( vehicle Api , Ġscope ) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġvehicle Api . fetch Accounts ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġreturns Ġload Accounts Response ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġvehicle Api . delete Account ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġreturns Ġno Content Response ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fetch Accounts () Ġshould Ġreturn Ġtransformed Ġdata `( soft ly : ĠSoft Assertions , Ġscope : ĠTest Coroutine Scope ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlink age Ġ= ĠApi Account Link age Factory . create Api Account Link age ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvendor Id Ġ= Ġ" vendor Id ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvendor DisplayName Ġ= Ġ" vendor DisplayName " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= ĠApi Account Link age Factory . create Api Account Link age Group ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccounts Ġ= ĠlistOf ( link age ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġcase Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Task TestCase ( load Accounts Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . fetch Accounts ("", Ġ"", Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcase . finish ( Api Account Link age Factory . create Api Account Link ages ( listOf ( group ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . success ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġcase . success ?. first OrNull ()?. accounts ?. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( account ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( account ?. vendor Id ). isEqualTo ( link age . vendor Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( account ?. vendor DisplayName ). isEqualTo ( link age . vendor DisplayName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fetch Accounts () Ġshould Ġreturn Ġtransformed Ġerror `( soft ly : ĠSoft Assertions , Ġscope : ĠTest Coroutine Scope ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Accounts Response . mock Error () ĊĠĠĠĠĠĠĠ Ġval Ġcase Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Task TestCase ( load Accounts Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . fetch Accounts ("", Ġ"", Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcase . finish Raw () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . success ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ?. request Error ). isInstanceOf ( Http Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` delete Account () Ġshould Ġreturn Ġsuccess `( soft ly : ĠSoft Assertions , Ġscope : ĠTest Coroutine Scope ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcase Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Task TestCase ( no Content Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . delete Account ("", Ġ"", Ġ"", ĠAccount Type . CHAR GING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcase . finish ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . success ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` delete Account () Ġshould Ġreturn Ġerror `( soft ly : ĠSoft Assertions , Ġscope : ĠTest Coroutine Scope ) Ġ{ ĊĠĠĠĠĠĠĠ Ġno Content Response . mock Error () ĊĠĠĠĠĠĠĠ Ġval Ġcase Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Task TestCase ( no Content Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . delete Account ("", Ġ"", Ġ"", ĠAccount Type . CHAR GING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcase . finish Raw () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . success ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft ly . assertThat ( case . error ?. request Error ). isInstanceOf ( Http Error :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ