package Ġcom . pay z . softp os . presentation . ui . main ĊĊ Ċ import Ġandroidx . test . filters . Large Test Ċ import Ġandroidx . test . rule . Activity Test Rule Ċ import Ġandroidx . test . runner . Android JUnit 4 Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions .* Ċ import Ġandroidx . test . espress o . assertion . View Assertions .* Ċ import Ġandroidx . test . espress o . matcher . View Matchers .* Ċ Ċ import Ġcom . pay z . softp os . R Ċ Ċ import Ġorg . hamcrest . Description Ċ import Ġorg . hamcrest . Matcher Ċ import Ġorg . hamcrest . Type Safe Matcher Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ import Ġorg . hamcrest . Matchers . all Of Ċ import Ġorg . hamcrest . Matchers .` is ` Ċ Ċ @ Large Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠSale Keyboard Test Ġ{ ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Activity Test Rule Ġ= ĠActivity Test Rule ( MainActivity :: class . java ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsale Keyboard Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Compat Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . btn Keyboard One ), Ġwith Text (" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ClassName (` is ` (" android . widget . LinearLayout ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġapp Compat Button . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġapp Compat Button 2 Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . btn Keyboard Two ), Ġwith Text (" 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ClassName (` is ` (" android . widget . LinearLayout ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġapp Compat Button 2 . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġapp Compat Button 3 Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . btn Keyboard Three ), Ġwith Text (" 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ClassName (` is ` (" android . widget . LinearLayout ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġapp Compat Button 3 . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . tv Sale Amount ), Ġwith Text (" âĤ ¼ Ġ 1 . 2 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Parent ( with Parent ( with Id ( R . id . nav _ host _ fragment ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠtextView . check ( matches ( with Text (" âĤ ¼ Ġ 1 . 2 3 "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġapp Compat Button 4 Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . btn Keyboard Back Space ), Ġwith Text (" x "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild At Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ClassName (` is ` (" android . widget . LinearLayout ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġapp Compat Button 4 . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġval ĠtextView 2 Ġ= Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . tv Sale Amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Parent ( with Parent ( with Id ( R . id . nav _ host _ fragment ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠtextView 2 . check ( matches ( with Text (" âĤ ¼ Ġ 0 . 1 2 "))) ĊĊĠĠĠĠĠĠĠ Ġapp Compat Button 4 . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . tv Sale Amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Parent ( with Parent ( with Id ( R . id . nav _ host _ fragment ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠtextView 2 . check ( matches ( with Text (" âĤ ¼ Ġ 0 . 0 1 "))) ĊĊĠĠĠĠĠĠĠ Ġapp Compat Button 4 . perform ( click ()) ĊĊĠĠĠĠĠĠĠ Ġon View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . tv Sale Amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Parent ( with Parent ( with Id ( R . id . nav _ host _ fragment ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠtextView 2 . check ( matches ( with Text (" âĤ ¼ Ġ 0 . 0 0 "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchild At Position ( ĊĠĠĠĠĠĠĠ Ġparent Matcher : ĠMatcher < View >, Ġposition : ĠInt ĊĠĠĠ Ġ): ĠMatcher < View > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠType Safe Matcher < View >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdescribe To ( description : ĠDescription ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . append Text (" Child Ġat Ġposition Ġ$ position Ġin Ġparent Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Matcher . describe To ( description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġmatches S af ely ( view : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġview . parent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparent Ġis ĠViewGroup Ġ&& Ġparent Matcher . matches ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġview Ġ== Ġparent . getChild At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ