/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġpan pf Ġ< pan p fp an pf @ outlook . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . github . pan pf . assembly adapter . pager . test Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġcom . github . pan pf . assembly adapter . OnClickListener Ċ import Ġcom . github . pan pf . assembly adapter . On Long ClickListener Ċ import Ġcom . github . pan pf . assembly adapter . pager . Pager Item Factory Ċ import Ġcom . github . pan pf . assembly adapter . pager . internal . Pager ClickListener Wrapper Ċ import Ġcom . github . pan pf . assembly adapter . pager . internal . Pager Long ClickListener Wrapper Ċ import Ġcom . github . pan pf . tools 4 j . reflect . k tx . call Method Ċ import Ġcom . github . pan pf . tools 4 j . reflect . k tx . getField Value Ċ import Ġcom . github . pan pf . tools 4 j . test . k tx . assert Throw Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠP ager Item Factory Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġaa _ tag _ click Bind Item Ġ= Ġ 1 1 0 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠString Pager Item Factory Ġ: ĊĠĠĠĠĠĠĠ ĠP ager Item Factory < String >( String :: class ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Item View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabsolute Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠView Ġ= ĠFrame Layout ( parent . context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( TextView ( parent . context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġaa _ tag _ click Bind Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠTest OnClickListener Ġ: ĠOn ClickListener < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabsolute Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠString ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠTest On Long ClickListener Ġ: ĠOn Long ClickListener < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Long Click ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabsolute Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Method Match Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Item Factory Ġ= ĠString Pager Item Factory () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( test Item Factory . match Data ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( test Item Factory . match Data ( false )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( test Item Factory . match Data (" hello ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Method Dispatch Create Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠInstrument ation Registry . get Instrumentation (). context ĊĠĠĠĠĠĠĠ Ġval Ġtest Item Factory Ġ= ĠString Pager Item Factory () ĊĊĠĠĠĠĠĠĠ Ġtest Item Factory . dispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( this Ġis ĠFrame Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Method Set On View ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠInstrument ation Registry . get Instrumentation (). context ĊĠĠĠĠĠĠĠ ĠString Pager Item Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġdispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild View Ġ= Ġroot View . findViewById < TextView >( aa _ tag _ click Bind Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem OnClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem On Long ClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview OnClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview On Long ClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( item OnClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( item On Long ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( view OnClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( view On Long ClickListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠString Pager Item Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener ( Test OnClickListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Item Long ClickListener ( Test On Long ClickListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On View ClickListener ( aa _ tag _ click Bind Item , ĠTest OnClickListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On View Long ClickListener ( aa _ tag _ click Bind Item , ĠTest On Long ClickListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġdispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild View Ġ= Ġroot View . findViewById < TextView >( aa _ tag _ click Bind Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem OnClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem On Long ClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview OnClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview On Long ClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( item OnClickListener Ġis ĠP ager ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( item On Long ClickListener Ġis ĠP ager Long ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( view OnClickListener Ġis ĠP ager ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( view On Long ClickListener Ġis ĠP ager Long ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠString Pager Item Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Item Long ClickListener Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On View ClickListener ( aa _ tag _ click Bind Item ) Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On View Long ClickListener ( aa _ tag _ click Bind Item ) Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġdispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild View Ġ= Ġroot View . findViewById < TextView >( aa _ tag _ click Bind Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem OnClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem On Long ClickListener Ġ= Ġroot View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview OnClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . OnClickListener >(" m OnClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview On Long ClickListener Ġ= Ġchild View . call Method < Any >(" get Listener Info ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getField Value < View . On Long ClickListener >(" m On Long ClickListener ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( item OnClickListener Ġis ĠP ager ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( item On Long ClickListener Ġis ĠP ager Long ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( view OnClickListener Ġis ĠP ager ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( view On Long ClickListener Ġis ĠP ager Long ClickListener Wrapper <* >) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Throw ( IllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Pager Item Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On View ClickListener ( R . id . aa _ tag _ absolute Adapter Position , ĠTest OnClickListener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. dispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Throw ( IllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Pager Item Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On View Long ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . aa _ tag _ absolute Adapter Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest On Long ClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. dispatch Create Item View ( context , ĠFrame Layout ( context ), Ġ 0 , Ġ 1 , Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }