package Ġio . realm Ċ Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġio . realm . rule . Blocking Looper Thread Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ /** Ċ Ġ* Ġ[ Realm Set ] Ġtests . ĠIt Ġuses Ġ[ Parameterized ] Ġtests Ġfor Ġall Ġpossible Ġcombinations Ġof Ċ Ġ* Ġ[ Realm Set ] Ġtypes Ġ( i . e . Ġall Ġprimitive ĠRealm Ġtypes Ġ( see Ġ[ Set Supported Type ]) Ġplus Ċ Ġ* Ġ[ Realm Model ] Ġand Ġ[ Realm Any ] Ġ( and Ġin Ġturn Ġall Ġpossible Ġtypes Ġsupported Ġby ĠRealm Any ) Ġin Ġboth Ġ` managed ` Ċ Ġ* Ġand Ġ` unmanaged ` Ġmodes . Ċ Ġ* Ċ Ġ* ĠIn Ġorder Ġto Ġstream line Ġthe Ġtesting Ġfor Ġmanaged Ġdictionaries Ġwe Ġuse ĠKotlin 's Ġreflection ĠAPI Ċ Ġ* Ġ` K Function 1 ` Ġand Ġ` K Function 2 `. ĠThese Ġtwo Ġmethods Ġprovide Ġaccess Ġto Ġthe ĠJava Ġgetters Ġand Ġset ters Ċ Ġ* Ġused Ġto Ġwork Ġwith Ġeach Ġdictionary Ġfield . Ċ Ġ*/ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠParameter ized Set Tests ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtester : ĠSet Tester Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitial izer Ġfor Ġparameter ized Ġtests ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ( name Ġ= Ġ"{ 0 }") ĊĠĠĠĠĠĠĠ Ġfun Ġtest Type (): ĠList < Set Tester > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSet Mode . values (). map Ġ{ Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet Mode . UN MAN AG ED Ġ-> Ġunmanaged Set Factory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet Mode . MAN AG ED Ġ-> Ġmanaged Set Factory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. flatten () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġconfig Factory Ġ= ĠTest Realm Configuration Factory () ĊĊĠĠĠ Ġprivate Ġval Ġlo oper Thread Ġ= ĠBlock ing Looper Thread () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠRealm . init ( Instrumentation Registry . get Instrumentation (). context ) ĊĠĠĠĠĠĠĠ Ġtester . setUp ( config Factory . create Configuration (), Ġlo oper Thread ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . te ar Down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Managed () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . is Managed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠisValid () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . isValid () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Frozen () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . is Frozen () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsize () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . size () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠisEmpty () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcontains () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . contains () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdynamic () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . dynamic () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġiterator () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . iterator () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto Array () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . toArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto Array With Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . toArray With Parameter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . add () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremove () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . remove () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . insert () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert List () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . insert List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert OrUpdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . insert OrUpdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert OrUpdate List () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . insert OrUpdate List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcopy To Realm () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . copy To Realm () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcopy To Realm OrUpdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . copy To Realm OrUpdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcontains All () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . contains All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd All () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . addAll () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġretain All () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . retain All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġput Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . required Constraints () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremove All () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . removeAll () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfreeze () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . freeze () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset ters () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . set ters () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Realm ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . add Realm ChangeListener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Set ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . add Set ChangeListener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġtester . has Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġaggreg ations (){ ĊĠĠĠĠĠĠĠ Ġtester . aggreg ations () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠMode s Ġfor Ġsets . Ċ Ġ*/ Ċ enum Ġclass ĠSet Mode Ġ{ ĊĠĠĠ ĠUN MAN AG ED , ĠMAN AG ED Ċ } Ċ Ċ /** Ċ Ġ* ĠSupported Ġtypes Ġby Ġsets . ĠNotice Ġthat ĠRealm Any Ġsets Ġcan Ġin Ġturn Ġsupport Ġall Ġthese Ġtypes Ġinternally Ċ Ġ* Ġ( except ĠRealm Any Ġitself ). Ċ Ġ* Ċ Ġ* ĠAdd Ġnew Ġtypes Ġad - hoc Ġhere . Ċ Ġ*/ Ċ enum Ġclass ĠSet Supported Type Ġ{ ĊĠĠĠ ĠLONG , ĠINTEGER , ĠSH ORT , ĠBYTE , ĠFLOAT , ĠDOUBLE , ĠSTRING , ĠBOOLEAN , ĠDATE , ĠDEC IMAL 1 2 8 , ĠBINARY , ĠOBJECT _ ID , ĊĠĠĠ ĠUUID , ĠLINK , ĠM IX ED Ċ } Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ interface ĠSet Tester Ġ: ĠGeneric Tester Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetUp ( config Factory : ĠTest Realm Configuration Factory ) Ġ= ĠUnit ĠĠĠĠ Ġ// ĠNot Ġneeded Ġhere ĊĠĠĠ Ġfun Ġis Managed () ĊĠĠĠ Ġfun ĠisValid () ĊĠĠĠ Ġfun Ġis Frozen () ĊĠĠĠ Ġfun Ġsize () ĊĠĠĠ Ġfun ĠisEmpty () ĊĠĠĠ Ġfun Ġcontains () ĊĠĠĠ Ġfun Ġiterator () ĊĠĠĠ Ġfun Ġto Array () ĊĠĠĠ Ġfun Ġto Array With Parameter () ĊĠĠĠ Ġfun Ġadd () ĊĠĠĠ Ġfun Ġremove () ĊĠĠĠ Ġfun Ġcontains All () ĊĠĠĠ Ġfun Ġdynamic () ĊĠĠĠ Ġfun Ġinsert () ĊĠĠĠ Ġfun Ġinsert List () ĊĠĠĠ Ġfun Ġinsert OrUpdate () ĊĠĠĠ Ġfun Ġinsert OrUpdate List () ĊĠĠĠ Ġfun Ġcopy To Realm () ĊĠĠĠ Ġfun Ġcopy To Realm OrUpdate () ĊĠĠĠ Ġfun Ġadd All () ĊĠĠĠ Ġfun Ġretain All () ĊĠĠĠ Ġfun Ġrequired Constraints () ĊĠĠĠ Ġfun Ġremove All () ĊĠĠĠ Ġfun Ġclear () ĊĠĠĠ Ġfun Ġfreeze () ĊĠĠĠ Ġfun Ġset ters () ĊĠĠĠ Ġfun Ġadd Set ChangeListener () ĊĠĠĠ Ġfun Ġadd Realm ChangeListener () ĊĠĠĠ Ġfun Ġremove Set ChangeListener () ĊĠĠĠ Ġfun Ġremove Realm ChangeListener () ĊĠĠĠ Ġfun Ġhas Listeners () ĊĠĠĠ Ġfun Ġaggreg ations () Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠRealm Set < T >. init ( values : ĠList < T ?> ): ĠRealm Set < T > Ġ{ ĊĠĠĠ Ġreturn Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( value Ġin Ġvalues ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ