package Ġorg . dh is 2 . utils . session Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . times Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġjunit . framework . Assert . assertFalse Ċ import Ġorg . dh is 2 . data . prefs . Preference Ċ import Ġorg . dh is 2 . data . prefs . Preference Provider Ċ import Ġorg . h isp . dh is . android . core . D 2 Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ Ċ class ĠPin Presenter Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠPin Presenter ĊĠĠĠ Ġprivate Ġvar Ġpin View : ĠPin View Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġvar Ġpreference Provider : ĠPreference Provider Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġd 2 : ĠD 2 Ġ= ĠMockito . mock ( D 2 :: class . java , ĠMockito . RET URNS _ DE EP _ ST UB S ) ĊĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠPin Presenter ( pin View , Ġpreference Provider , Ġd 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġreturn Ġtrue Ġif Ġpin Ġis Ġcorrect `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Pin Ġ= Ġ" test Pin " ĊĊĠĠĠĠĠĠĠ Ġwhenever ( preference Provider . getString ( Preference . PIN , Ġ"")) Ġdo Return Ġtest Pin ĊĠĠĠĠĠĠĠ Ġval Ġis Unlock ed Ġ= Ġpresenter . unlock Session ( test Pin ) ĊĊĠĠĠĠĠĠĠ Ġverify ( preference Provider , Ġtimes ( 1 )). setValue ( Preference . SESSION _ LOCK ED , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġassert ( is Unlock ed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġreturn Ġfalse Ġif Ġpin Ġis Ġwrong `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Pin Ġ= Ġ" test Pin " ĊĠĠĠĠĠĠĠ Ġval Ġwrong Pin Ġ= Ġ" wrong Pin " ĊĊĠĠĠĠĠĠĠ Ġwhenever ( preference Provider . getString ( Preference . PIN , Ġ"")) Ġdo Return Ġtest Pin ĊĠĠĠĠĠĠĠ Ġval Ġis Unlock ed Ġ= Ġpresenter . unlock Session ( wrong Pin ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( is Unlock ed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġsave Ġpin Ġand Ġblock Ġsession `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Pin Ġ= Ġ" test Pin " ĊĊĠĠĠĠĠĠĠ Ġpresenter . save Pin ( test Pin ) ĊĠĠĠĠĠĠĠ Ġverify ( preference Provider , Ġtimes ( 1 )). setValue ( Preference . PIN , Ġtest Pin ) ĊĠĠĠĠĠĠĠ Ġverify ( preference Provider , Ġtimes ( 1 )). setValue ( Preference . SESSION _ LOCK ED , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġclear Ġpin Ġand Ġblock Ġsession Ġwhen Ġlogout `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . log Out () ĊĠĠĠĠĠĠĠ Ġverify ( preference Provider , Ġtimes ( 1 )). setValue ( Preference . PIN , Ġnull ) ĊĠĠĠĠĠĠĠ Ġverify ( preference Provider , Ġtimes ( 1 )). setValue ( Preference . SESSION _ LOCK ED , Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ