package Ġorg . dh is 2 . use sc ases . te id ashboard . robot Ċ Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . Type Text Action Ċ import Ġandroidx . test . espress o . action . View Actions . click Ċ import Ġandroidx . test . espress o . assertion . View Assertions . matches Ċ import Ġandroidx . test . espress o . contrib . RecyclerView Actions . action On Item At Position Ċ import Ġandroidx . test . espress o . matcher . View Matchers . has Desc endant Ċ import Ġandroidx . test . espress o . matcher . View Matchers . is Displayed Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Id Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Text Ċ import Ġorg . dh is 2 . R Ċ import Ġorg . dh is 2 . common . Base Robot Ċ import Ġorg . dh is 2 . common . matchers . Recycler view Matchers . Companion . at Position Ċ import Ġorg . dh is 2 . common . matchers . Recycler view Matchers . Companion . isNotEmpty Ċ import Ġorg . dh is 2 . use sc ases . notes . Notes ViewHolder Ċ import Ġorg . hamcrest . Core Matchers . all Of Ċ import Ġorg . hamcrest . Core Matchers . not Ċ Ċ fun Ġnote Robot ( note Robot : ĠNote Robot . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠNote Robot (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġnote Robot () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNote Robot Ġ: ĠBase Robot () Ġ{ ĊĊĠĠĠ Ġfun Ġclick On Fab AddNew Note () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . add Note Button )). check ( matches ( is Displayed ())). perform ( click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick On Note With Position ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . notes _ recycler )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( action On Item At Position < Notes ViewHolder >( position , Ġclick ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtype Note ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . note Text )). perform ( Type Text Action ( text )) ĊĠĠĠĠĠĠĠ Ġclose Keyboard () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick On Save Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . save Button )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Yes On AlertDialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . yes )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Note Was Not Created ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . notes _ recycler )). check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatches ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Desc endant (( with Text ( text ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck New Note Was Created ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . notes _ recycler )). check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatches ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Displayed (), Ġis NotEmpty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat Position ( 0 , Ġhas Desc endant ( with Text ( text ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick On Clear Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . clear Button )). perform ( click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Note Details ( user : ĠString , Ġnote Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . store By )). check ( matches ( with Text ( user ))) ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . note )). check ( matches ( with Text ( note Text ))) ĊĠĠĠ Ġ} Ċ } Ċ