package Ġcom . mat b ade v . dab ir va . util Ċ Ċ import Ġandroidx . databinding . Observable Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . util . concurrent . atomic . Atomic Reference Ċ Ċ class ĠNon Null Observable Field Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN Ġnon - null Ġinitial Ġvalue ĠWHEN Ġcreating Ġinstance ĠEXPECT Ġsuccess `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinitial Value Ġ= Ġ 4 2 ĊĠĠĠĠĠĠĠ ĠNon Null Observable Field ( initial Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN Ġnon - null Ġinitial Ġvalue ĠWHEN Ġcreating Ġinstance Ġand Ġaccessing Ġvalue ĠEXPECT Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġ" text " ĊĠĠĠĠĠĠĠ Ġval Ġobservable Field Ġ= ĠNon Null Observable Field ( value ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( value , Ġobservable Field . value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN Ġnull Ġinitial Ġvalue ĠWHEN Ġcreating Ġinstance ĠEXPECT Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnull Ref Ġ= ĠAtomic Reference < Any >( null ) ĊĠĠĠĠĠĠĠ ĠassertThrows < NullPointerException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNon Null Observable Field ( null Ref . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN Ġnon - null Ġnew Ġvalue ĠWHEN Ġsetting Ġvalue ĠEXPECT Ġvalue Ġupdate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Field Ġ= ĠNon Null Observable Field (" text ") ĊĠĠĠĠĠĠĠ Ġvar Ġproperty Changed Value : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġobservable Field . add On PropertyChanged Callback ( object Ġ: ĠObservable . On PropertyChanged Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon PropertyChanged ( sender : ĠObservable , Ġproperty Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġsender Ġas ĠNon Null Observable Field < String > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Changed Value Ġ= Ġfield . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġval ĠnewValue Ġ= Ġ" updated Text " ĊĠĠĠĠĠĠĠ Ġobservable Field . value Ġ= ĠnewValue ĊĠĠĠĠĠĠĠ ĠassertEquals ( newValue , Ġobservable Field . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( newValue , Ġproperty Changed Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` G IV EN Ġnull Ġnew Ġvalue ĠWHEN Ġsetting Ġvalue ĠEXPECT Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnull String Ref Ġ= ĠAtomic Reference < String >( null ) ĊĠĠĠĠĠĠĠ Ġval Ġobservable Field Ġ= ĠNon Null Observable Field ("") ĊĠĠĠĠĠĠĠ ĠassertThrows < NullPointerException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobservable Field . value Ġ= Ġnull String Ref . get () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ