package Ġio . ben ic . shopping list . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġio . ben ic . shopping list . model . Item Ċ import Ġio . ben ic . shopping list . model . Shopping Cart Ċ import Ġio . ben ic . shopping list . repository . Item Repository Ċ import Ġio . ben ic . shopping list . repository . Shopping Cart Repository Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito .* Ċ import Ġorg . mockito . Mockito Annotations Ċ Ċ class ĠItem ViewModel Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem Repository : ĠItem Repository ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcart Repository : ĠShop ping Cart Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem ViewModel : ĠItem ViewModel ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĊĠĠĠĠĠĠĠ Ġitem ViewModel Ġ= ĠItem ViewModel ( item Repository , Ġcart Repository ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( item Repository . getItems ( any Long ())). thenReturn ( Mutable LiveData ()) ĊĠĠĠĠĠĠĠ Ġ` when `( cart Repository . get Cart ( any Int ())). thenReturn ( Mutable LiveData ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfetch Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ViewModel . fetch Items ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġverify ( item Repository ). getItems ( 0 ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( item Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfetch Cart () Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ViewModel . fetch Cart ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġverify ( cart Repository ). get Cart ( 0 ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( cart Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Cart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcart Ġ= ĠShop ping Cart ( name Ġ= Ġ" cart ") ĊĠĠĠĠĠĠĠ Ġitem ViewModel . create Cart ( cart ) ĊĊĠĠĠĠĠĠĠ Ġverify ( cart Repository ). add Cart ( cart ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( cart Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem ( name Ġ= Ġ" item ") ĊĠĠĠĠĠĠĠ Ġitem ViewModel . addItem ( item ) ĊĊĠĠĠĠĠĠĠ Ġverify ( item Repository ). addItem ( item ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( item Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate Cart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcart Ġ= ĠShop ping Cart ( name Ġ= Ġ" cart ") ĊĠĠĠĠĠĠĠ Ġitem ViewModel . update Cart ( cart ) ĊĊĠĠĠĠĠĠĠ Ġverify ( cart Repository ). update Cart ( cart ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( cart Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem ( name Ġ= Ġ" item ") ĊĠĠĠĠĠĠĠ Ġitem ViewModel . update Item ( item ) ĊĊĠĠĠĠĠĠĠ Ġverify ( item Repository ). update Item ( item ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( item Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem ( name Ġ= Ġ" item ") ĊĠĠĠĠĠĠĠ Ġitem ViewModel . delete Item ( item ) ĊĊĠĠĠĠĠĠĠ Ġverify ( item Repository ). delete Item ( item ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( item Repository ) ĊĠĠĠ Ġ} Ċ }