package Ġcom . aid an v ii . toolbox . adapter views . databinding . recyclerview Ċ Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . appcompat . widget . make Notify Not Crash Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Bind able Adapter Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Bind able Adapter Delegate Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Binding Inflater Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Test Item Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . default Get Changed Properties Ċ import Ġcom . n ha ar man . mockito _ kotlin . in Order Ċ import Ġcom . n ha ar man . mockito _ kotlin . reset Ċ import Ġcom . n ha ar man . mockito _ kotlin . spy Ċ import Ġcom . n ha ar man . mockito _ kotlin . verify Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġorg . am sh ove . k lu ent .` should Ġbe Ġequal Ġto ` Ċ import Ġorg . am sh ove . k lu ent .` should Ġequal ` Ċ import Ġorg . am sh ove . k lu ent .` should Ġthrow ` Ċ import Ġorg . am sh ove . k lu ent . mock Ċ import Ġorg . junit . jupiter . api . Disabled Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . util . Random Ċ Ċ @ Experimental Cor outines Api Ċ internal Ġclass ĠBinding RecyclerView Adapter Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġval ĠVIEW _ TYPE Ġ= Ġrandom . nextInt () ĊĠĠĠĠĠĠĠ Ġval ĠB IND ING _ ID Ġ= Ġrandom . nextInt () ĊĠĠĠĠĠĠĠ Ġval ĠAD AP TER _ POSITION Ġ= Ġrandom . nextInt () ĊĠĠĠ Ġ} ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠBinding RecyclerView Adapter . test Mode Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmock Container Ġ= Ġmock < RecyclerView >() ĊĊĠĠĠ Ġval Ġmock Binding Ġ= Ġmock < ViewData Binding >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( root ). thenReturn ( mock ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmock ViewHolder Ġ= Ġmock < Binding RecyclerView Item ViewHolder < *, ĠTest Item >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( adapter Position ). thenReturn ( ADAPTER _ POSITION ) ĊĠĠĠĠĠĠĠ Ġwhenever ( view Data Binding ). thenReturn ( mock Binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmock ViewType Handler Ġ= Ġmock < Bind able Adapter . ViewType Handler < Test Item >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( getItem ViewType ( ADAPTER _ POSITION )). thenReturn ( VIEW _ TYPE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmock Binding Inflater Ġ= Ġmock < Binding Inflater >() ĊĠĠĠ Ġval Ġspy Are Items The Same Ġ= Ġspy <( old : ĠTest Item , Ġnew : ĠTest Item ) Ġ-> ĠBoolean >({ Ġold , Ġnew Ġ-> Ġold Ġ== Ġnew Ġ}) ĊĠĠĠ Ġval Ġspy Are Contents The Same Ġ= Ġspy <( old : ĠTest Item , Ġnew : ĠTest Item ) Ġ-> ĠBoolean >({ Ġold , Ġnew Ġ-> Ġold Ġ== Ġnew Ġ}) ĊĊĠĠĠ Ġval Ġmock Delegate Ġ= Ġmock < Bind able Adapter Delegate < Test Item , ĠBinding RecyclerView Item ViewHolder < *, ĠTest Item >>> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( onCreate ( mock Container , ĠVIEW _ TYPE )). thenReturn ( mock ViewHolder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġspy Tested Ġ= Ġspy ( ĊĠĠĠĠĠĠĠ ĠBinding RecyclerView Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBinding RecyclerView Adapter . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġmock Delegate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġare Items The Same Ġ= Ġspy Are Items The Same , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġare Contents The Same Ġ= Ġspy Are Contents The Same , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Changed Properties Ġ= Ġdefault Get Changed Properties , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Type Handler Ġ= Ġmock ViewType Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Inflater Ġ= Ġmock Binding Inflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Bound Observer s Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Dispatcher Ġ= ĠDispatch ers . Un conf ined , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworker Dispatcher Ġ= ĠDispatch ers . Un conf ined ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġmake Notify Not Crash () ĊĠĠĠĠĠĠĠ Ġon Attached To RecyclerView ( mock Container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` getItem ViewType Ġis Ġforwarded Ġto ĠView Type Handler `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . getItem ViewType ( ADAPTER _ POSITION ). let Ġ{ ĠitemView Type Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock ViewType Handler ). getItem ViewType ( ADAPTER _ POSITION ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView Type Ġ` should Ġbe Ġequal Ġto ` ĠVIEW _ TYPE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` onCreate ViewHolder Ġforwards Ġto Ġdelegate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . onCreate ViewHolder ( mock Container , ĠVIEW _ TYPE ). let Ġ{ ĠviewHolder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( mock Delegate ). onCreate ( mock Container , ĠVIEW _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Ġ` should Ġequal ` Ġmock ViewHolder ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` create With Ġcreates ĠviewHolder Ġwith Ġcorrect Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . create With ( BINDING _ ID , Ġmock Binding ). let Ġ{ ĠviewHolder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . binding ResourceId Ġ` should Ġequal ` ĠB IND ING _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . view Data Binding Ġ` should Ġequal ` Ġmock Binding ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Bind ViewHolder Ġwith Ġempty Ġpayload s Ġforwards Ġto Ġon Bind ViewHolder Ġwithout Ġpayload s `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġempty List ()) ĊĊĠĠĠĠĠĠĠ Ġverify ( spy Tested ). on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Bind ViewHolder Ġwith Ġinvalid Ġpayload s Ġthrows Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfunction Ġ= Ġ{ Ġspy Tested . on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION , ĠlistOf ( Any ())) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfunction Ġ` should Ġthrow ` ĠUnsupportedOperationException :: class ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġon Bind ViewHolder Ġis Ġcalled Ġwith Ġempty Ġpayload s , Ġon Intercept On Bind Ġreturns Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġempty List ()) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . on Intercept On Bind ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġnull ) Ġ` should Ġbe Ġequal Ġto ` Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġon Bind ViewHolder Ġis Ġcalled Ġwith Ġvalid Ġpayload s , Ġon Intercept On Bind Ġreturns Ġtrue , Ġsubsequent Ġcalls Ġreturn Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Change Payload Ġ= ĠAdapter Notifier . Change Payload ( mock (), Ġint ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 )) ĊĠĠĠĠĠĠĠ Ġspy Tested . on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION , ĠlistOf ( expected Change Payload )) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . on Intercept On Bind ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġnull ) Ġ` should Ġbe Ġequal Ġto ` Ġtrue ĊĠĠĠĠĠĠĠ Ġspy Tested . on Intercept On Bind ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġnull ) Ġ` should Ġbe Ġequal Ġto ` Ġfalse ĊĠĠĠĠĠĠĠ Ġexpected Change Payload . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Order ( sender ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( sender ). adapter Bind Start ( spy Tested ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( property Id Ġin Ġchanged Properties ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( sender ). notify Adapter PropertyChanged ( property Id , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Bind ViewHolder Ġforwards Ġto Ġdelegate Ġon Bind `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . on Bind ViewHolder ( mock ViewHolder , ĠAD AP TER _ POSITION ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock Delegate ). on Bind ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġmock Container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on View Re cyc led Ġforwards Ġto Ġdelegate Ġon Un bind `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . on View Re cyc led ( mock ViewHolder ) ĊĊĠĠĠĠĠĠĠ Ġverify ( mock Delegate ). on Un bind ( mock ViewHolder , ĠAD AP TER _ POSITION , Ġmock Container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Ġitems Ġwith Ġtest Ġdata Ġ 1 Ġnot ifies Ġadapter Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 2 , Ġbinding Id Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= Ġnew Items ĊĊĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Inserted ( 0 , Ġ 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Ġitems Ġwith Ġtest Ġdata Ġ 2 Ġnot ifies Ġadapter Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 2 , Ġbinding Id Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreset ( spy Tested ) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 2 , Ġbinding Id Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Removed ( 1 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Ġitems Ġwith Ġtest Ġdata Ġ 3 Ġnot ifies Ġadapter Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreset ( spy Tested ) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 4 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 5 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 6 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Inserted ( 4 , Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Ġitems Ġwith Ġtest Ġdata Ġ 4 Ġnot ifies Ġadapter Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 6 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreset ( spy Tested ) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 4 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 5 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 6 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Inserted ( 3 , Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// FIX ME Ġsee ĠGithub Ġissue Ġ# 7 ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Disabled (" FIX ME Ġsee ĠGithub Ġissue Ġ# 7 ") ĊĠĠĠ Ġfun Ġ` set Ġitems Ġwith Ġtest Ġdata Ġ 5 Ġnot ifies Ġadapter Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 4 , Ġview Type Ġ= Ġ 2 , Ġbinding Id Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreset ( spy Tested ) ĊĊĠĠĠĠĠĠĠ Ġspy Tested . items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 0 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 1 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 2 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 3 , Ġview Type Ġ= Ġ 1 , Ġbinding Id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Item ( id Ġ= Ġ 4 , Ġview Type Ġ= Ġ 2 , Ġbinding Id Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġin Order ( spy Tested ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Inserted ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( spy Tested ). notify Item Range Inserted ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }