package Ġcom . mar ag ues . planner . visor Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġcom . mar ag ues . planner . test . Base UnitTest Ċ import Ġcom . n ha ar man . mockito _ kotlin . mock Ċ import Ġcom . n ha ar man . mockito _ kotlin . verify No More Interactions Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Argument Matchers . any Int Ċ Ċ class ĠMe als Item Se paration Test Ġ: ĠBase UnitTest () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSE PAR ATION Ġ= Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ W EE KS Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġme als Separator Ġ= ĠMe als Item Se paration ( SEPAR ATION ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition 0 _ does nt Touch Out Rect () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 0 , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row 0 _ column 1 _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġ 0 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= ĠSE PAR ATION , Ġright Margin Ġ= ĠSE PAR ATION , Ġtop Margin Ġ= Ġ 0 , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row 1 _ column 1 _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġ 1 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= ĠSE PAR ATION , Ġright Margin Ġ= ĠSE PAR ATION , Ġtop Margin Ġ= ĠSE PAR ATION , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row 0 _ column Last _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġ 0 , Ġlast Column ()) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= Ġ 0 , Ġright Margin Ġ= Ġ 0 , Ġtop Margin Ġ= Ġ 0 , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row 1 _ column 0 _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġ 1 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= Ġ 0 , Ġright Margin Ġ= Ġ 0 , Ġtop Margin Ġ= ĠSE PAR ATION , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row 1 _ column Last _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġ 1 , Ġlast Column ()) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= Ġ 0 , Ġright Margin Ġ= Ġ 0 , Ġtop Margin Ġ= ĠSE PAR ATION , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row Last _ column 0 _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġlast Row (), Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= Ġ 0 , Ġright Margin Ġ= Ġ 0 , Ġtop Margin Ġ= ĠSE PAR ATION , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġposition Over Zero _ row Last _ column Last _ sets Expected Separ ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= Ġmock Separator ( 1 , Ġlast Row (), Ġlast Column ()) ĊĊĠĠĠĠĠĠĠ Ġassert Rect Values ( out Rect , Ġleft Margin Ġ= Ġ 0 , Ġright Margin Ġ= Ġ 0 , Ġtop Margin Ġ= ĠSE PAR ATION , Ġbottom Margin Ġ= Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠUT IL S ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġlast Column () Ġ= ĠDEFAULT _ W EE KS Ġ- Ġ 1 ĊĠĠĠ Ġprivate Ġfun Ġlast Row () Ġ= ĠMe als Adapter . DAYS _ IN _ WEEK Ġ- Ġ 1 ĊĊĠĠĠ Ġprivate Ġfun Ġassert Rect Values ( rect : ĠRect , Ġleft Margin : ĠInt , Ġright Margin : ĠInt , Ġtop Margin : ĠInt , Ġbottom Margin : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals (" Expected Ġleft Ġmargin Ġ$ left Margin , Ġwas Ġ${ rect . left }", Ġleft Margin , Ġrect . left ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Expected Ġright Ġmargin Ġ$ right Margin , Ġwas Ġ${ rect . right }", Ġright Margin , Ġrect . right ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Expected Ġtop Ġmargin Ġ$ top Margin , Ġwas Ġ${ rect . top }", Ġtop Margin , Ġrect . top ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Expected Ġbottom Ġmargin Ġ$ bottom Margin , Ġwas Ġ${ rect . bottom }", Ġbottom Margin , Ġrect . bottom ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock Separator ( position : ĠInt , Ġrow : ĠInt , Ġcolumn : ĠInt ): ĠRect Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġme als Adapter Ġ= Ġmock Me als Adapter ( position , Ġrow , Ġcolumn ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmock GetItem Offsets ( position , Ġme als Adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock Me als Adapter ( position : ĠInt , Ġrow : ĠInt , Ġcolumn : ĠInt ): ĠMe als Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġme als Adapter : ĠMe als Adapter Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġwhenever ( me als Adapter . getTotal Week s ()). thenReturn ( DEFAULT _ W EE KS ) ĊĠĠĠĠĠĠĠ Ġwhenever ( me als Adapter . get Week Index ( position )). thenReturn ( column ) ĊĠĠĠĠĠĠĠ Ġwhenever ( me als Adapter . get Week Offset ( position )). thenReturn ( row ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġme als Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock GetItem Offsets ( position : ĠInt , Ġme als Adapter : ĠMe als Adapter ): ĠRect Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Rect Ġ= ĠRect () ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView : ĠRecyclerView Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġstate : Ġandroid . support . v 7 . widget . RecyclerView . State Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġwhenever ( re cyclerView . getChild Layout Position ( view )). thenReturn ( position ) ĊĊĠĠĠĠĠĠĠ Ġwhenever ( re cyclerView . adapter ). thenReturn ( me als Adapter ); ĊĊĠĠĠĠĠĠĠ Ġme als Separator . getItem Offsets ( out Rect , Ġview , Ġre cyclerView , Ġstate ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġout Rect ĊĠĠĠ Ġ} Ċ }