package Ġio . github . toy ota 3 2 k . bind it Ċ Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġio . github . toy ota 3 2 k . bind it . EditText Binding Ċ import Ġio . github . toy ota 3 2 k . bind it . Text Binding Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . android . controller . Activity Controller ĊĊ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠText Binding Test Ġ{ ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġinstant Executor Rule Ġ: ĠInstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġlateinit Ġvar Ġactivity Controller Ġ: ĠActivity Controller < Just Test Activity > ĊĊĠĠĠ Ġfun Ġcreate Activity (): ĠAppCompatActivity Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Controller Ġ= ĠRo bo lectric . build Activity ( Just Test Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity Controller . create (). start (). get () Ġas ĠAppCompatActivity ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Controller . pause (). destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġon w Way Text Binding Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġcreate Activity () ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠTextView ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠĠĠĠĠ Ġview . text =" 1 2 3 " ĊĠĠĠĠĠĠĠ Ġval Ġtext Binding Ġ= ĠText Binding . create ( activity , Ġview , Ġdata ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( view . text . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( data . value . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ Ġdata . value Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġview . text ) ĊĊĠĠĠĠĠĠĠ Ġview . text Ġ= Ġ" xyz " ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" xyz ", Ġview . text ) ĊĊĠĠĠĠĠĠĠ Ġdata . value Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġview . text ) ĊĊĠĠĠĠĠĠĠ Ġdata . value Ġ= Ġnull ĊĠĠĠĠĠĠĠ ĠassertTrue ( view . text . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( data . value . isNull OrEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġone Way To Source Binding Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġcreate Activity () ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠEditText ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠMutable LiveData < String >() ĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġval Ġtext Binding Ġ= ĠEditText Binding . create ( activity , Ġview , Ġdata , Ġmode Ġ= ĠBinding Mode . One Way To Source ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġview . text . toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( view . text . toString (), Ġdata . value ) ĊĠĠĠĠĠĠĠ Ġdata . value Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġview . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" xyz ") ĊĠĠĠĠĠĠĠ ĠassertEquals (" xyz ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" xyz ", Ġview . text . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtwo Way Binding Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġcreate Activity () ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠEditText ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠMutable LiveData < String >(" data ") ĊĠĠĠĠĠĠĠ Ġview . setText (" view ") ĊĠĠĠĠĠĠĠ Ġval Ġtext Binding Ġ= ĠEditText Binding . create ( activity , Ġview , Ġdata , Ġmode Ġ= ĠBinding Mode . Two Way ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" data ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" data ", Ġview . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġdata . value Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" abc ", Ġview . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" xyz ") ĊĠĠĠĠĠĠĠ ĠassertEquals (" xyz ", Ġdata . value ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" xyz ", Ġview . text . toString ()) ĊĠĠĠ Ġ} Ċ }