package Ġcom . ger o sp ri me . gy log Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . test . espress o . intent . Intent s Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Large Test Ċ import Ġandroidx . test . rule . Activity Test Rule Ċ import Ġandroidx . test . rule . Grant Permission Rule Ċ import Ġcom . ger o sp ri me . gy log . models . mus cle . M us cle Enum Ċ import Ġcom . ger o sp ri me . gy log . robots . dashboard Ex ercises Ċ import Ġcom . ger o sp ri me . gy log . robots . edit Exercise Screen Ċ import Ġcom . ger o sp ri me . gy log . robots . main Screen Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ Large Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠAdd Exercise Screen Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Activity Test Rule Ġ= ĠActivity Test Rule ( MainActivity :: class . java ) ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Grant Permission Rule Ġ= ĊĠĠĠĠĠĠĠ ĠGrant Permission Rule . grant ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" android . permission . READ _ EXTERNAL _ STORAGE " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠInt ents . init () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ ĠInt ents . release () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Exercise _ success _ new Exercise In Dashboard () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Activity Test Rule . launch Activity ( Intent ()) ĊĊĠĠĠĠĠĠĠ Ġmain Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Dashboard Ex ercises () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Add () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġedit Exercise Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname (" D um bb ell ĠB ench ĠPress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription (" D um bb ell Ġversion Ġof Ġbench Ġpress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirections (" Sample Ġdirection ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Input Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Chest () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Tr ice ps () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Chest Upper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Save () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlast Item Index Ġ= Ġm Activity Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity . findViewById < RecyclerView >( R . id . dashboard Ex ercises ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. adapter !!. item Count Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġdashboard Ex ercises Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll To Item ( last Item Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Name At ( last Item Index , Ġ" D um bb ell ĠB ench ĠPress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Target M us cle At ( last Item Index , ĠM us cle Enum . CH EST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Target M us cle At ( last Item Index , ĠM us cle Enum . TR ICE PS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Target M us cle At ( last Item Index , ĠM us cle Enum . CH EST _ UPPER ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadd Ex ercises _ c anceled _ c anceled Exercise NotIn Dashboard () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Activity Test Rule . launch Activity ( Intent ()) ĊĊĠĠĠĠĠĠĠ Ġmain Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Dashboard Ex ercises () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Add () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġedit Exercise Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname (" Canceled ĠD um bb ell ĠB ench ĠPress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription (" Canceled Ġ ĠD um bb ell Ġversion Ġof Ġbench Ġpress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirections (" Canceled ĠSample Ġdirection ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Input Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpress Back Button () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlast Item Index Ġ= Ġm Activity Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity . findViewById < RecyclerView >( R . id . dashboard Ex ercises ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. adapter !!. item Count Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġif Ġ( last Item Index Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdashboard Ex ercises Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll To Item ( last Item Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Exercise NotIn Dashboard ( last Item Index , Ġ" Canceled ĠD um bb ell ĠB ench ĠPress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ