package Ġcom . friend o ye . recycler x ray Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . friend o ye . recycler x ray . internal . Real Recycler XR ay Api Ċ import Ġcom . friend o ye . recycler x ray . stubs . Count able Adapter Data Observer Ċ import Ġcom . friend o ye . recycler x ray . stubs . Stub Recycler Adapter Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠReal Recycler XR ay Api Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠStub Recycler Adapter ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠStub Recycler Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Default Ġmode Ġis Ġoff `() Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( Real Recycler XR ay Api (). isIn XR ay Mode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` toggle Secrets () Ġchanges Ġmode `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . toggle Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . toggle Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` show Secrets () Ġworks Ġif Ġmode Ġis Ġoff `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . show Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` show Secrets () Ġdoesn 't Ġworks Ġif Ġmode Ġis Ġon `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . show Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` hide Secrets () Ġworks Ġif Ġmode Ġis Ġon `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . hide Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` hide Secrets () Ġdoesn 't Ġworks Ġif Ġmode Ġis Ġoff `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cycler Api . hide Secrets () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` show Secrets () Ġis Ġide mpot ent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Api . show Secrets () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` hide Secrets () Ġis Ġide mpot ent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Observer Ġ= ĠCount able Adapter Data Observer ( methods Inv oked Count Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn XR ay Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrap ( adapter ). register Adapter Data Observer ( adapter Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Api . hide Secrets () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( recycler Api . isIn XR ay Mode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( adapter Observer . methods Inv oked Count Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` wrap ()- unwrap () Ġreturns Ġsame Ġadapter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠRecyclerView . Adapter < RecyclerView . ViewHolder > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Api . unwrap ( recycler Api . wrap ( adapter )) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( result , Ġadapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Nested Ġwrap () Ġhas Ġno Ġextra Ġeffect `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Api Ġ= ĠReal Recycler XR ay Api () ĊĊĠĠĠĠĠĠĠ Ġval Ġwrapped Adapter Ġ= Ġre cycler Api . wrap ( adapter ) ĊĠĠĠĠĠĠĠ Ġval Ġsuper Wrapped Adapter Ġ= Ġre cycler Api . wrap ( wrapped Adapter ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( recycler Api . adapters . size , Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( recycler Api . adapters . first (). get (), Ġadapter ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( wrapped Adapter , Ġsuper Wrapped Adapter ) ĊĠĠĠ Ġ} Ċ } Ċ