package Ġkim . w oose op . calcul ist . helper Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġorg . mockito . Argument Matchers Ċ import Ġorg . mockito . Mockito Ċ Ċ object ĠMock s Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġprefs Ġ= Ġmutable Map Of < String , ĠSharedPreferences >() ĊĊĠĠĠ Ġfun Ġcontext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( Context :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( get SharedPreferences ( Argument Matchers . any String (), ĠArgument Matchers . any Int ())). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġit . get Argument < String >( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . compute If Absent ( key ) Ġ{ Ġprefs () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprefs (): ĠSharedPreferences Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( SharedPreferences :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , ĠString ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġeditor ( map ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( getString ( Argument Matchers . any String (), ĠArgument Matchers . any ())). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġit . get Argument < String >( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Ġ= Ġit . get Argument < String ? >( 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap . get OrDefault ( key , Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( edit ()). thenReturn ( editor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeditor ( map : ĠMutable Map < String , ĠString ?> ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( SharedPreferences . Editor :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġmutable Map Of < String , ĠString ?> () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( putString ( Argument Matchers . any String (), ĠArgument Matchers . any ())). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġit . get Argument < String >( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . get Argument < String ? >( 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit . put ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( apply ()). then Ġ{ Ġmap . put All ( edit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ