package Ġcom . ig or vd . bitcoin charts . features . charts . presentation . home Ċ Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . ig or vd . bitcoin charts . R Ċ import Ġcom . ig or vd . bitcoin charts . features . charts . data . di . Charts Data Module Ċ import Ġcom . ig or vd . bitcoin charts . features . charts . domain . model . Chart Type Ċ import Ġcom . ig or vd . bitcoin charts . testutil . rule . Intent s Rule Ċ import Ġcom . ig or vd . bitcoin charts . testutil . rule . Mock WebServer Rule Ċ import Ġdagger . h ilt . android . testing . H ilt Android Rule Ċ import Ġdagger . h ilt . android . testing . H ilt Android Test Ċ import Ġdagger . h ilt . android . testing . Un install Modules Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ Un install Modules ( Charts Data Module :: class ) Ċ @ H ilt Android Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠChart s Home Activity Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġh ilt Rule Ġ= ĠH ilt Android Rule ( this ) ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġmock WebServer Rule Ġ= ĠMock WebServer Rule () ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġintent s Rule Ġ= ĠInt ents Rule () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrobot : ĠChart s Home Activity Robot ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot Ġ= ĠChart s Home Activity Robot ( mock WebServer Rule . mock WebServer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Home Screen _ when Stats ApiResponse 2 0 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Stats 2 0 0 Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Title Displayed ( R . string . home _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Error View Hidden () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Description Displayed ( R . string . home _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Category Title At Position Displayed ( 0 , ĠR . string . home _ stats _ category _ market _ summary ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ market _ price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ 4 0 , 3 9 5 . 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ trade _ volume , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ 4 0 0 , 0 0 0 , 0 0 0 . 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ trade _ volume , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 5 , 4 5 0 . 7 6 0 0 0 0 0 0 ĠBTC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Category Title At Position Displayed ( 1 , ĠR . string . home _ stats _ category _ block _ summary ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ blocks _ min ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ time _ between _ blocks , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 Ġminutes ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ bit coins _ min ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 . 5 0 0 0 0 0 0 0 ĠBTC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Category Title At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ category _ transaction _ summary ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ total _ transaction _ fees , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 . 0 7 0 5 4 2 4 7 ĠBTC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ number _ of _ transactions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 5 , 4 6 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 8 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ total _ output _ volume , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 8 , 4 8 8 . 7 6 1 9 3 3 2 0 ĠBTC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ estimated _ transaction _ volume , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 4 , 0 0 7 . 6 1 6 4 1 0 7 8 ĠBTC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Category Title At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ category _ mining _ cost ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Metric At Position Displayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . home _ stats _ label _ total _ min ers _ re venue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ 5 8 8 , 5 8 1 . 5 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Error Layout With ServerError _ when ApiResponse 5 0 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Stats 5 0 0 Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Error View Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Error Img Displayed ( R . drawable . ic _ error _ server ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ErrorMessage Displayed ( R . string . error _ server ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Try Again Button Displayed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Error Layout With Network Error _ when IOException () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given IO Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Error View Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Error Img Displayed ( R . drawable . ic _ error _ networking ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ErrorMessage Displayed ( R . string . error _ network ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Try Again Button Displayed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Home Screen _ when Click On Try Again () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given IO Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Stats 2 0 0 Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. when Click On Try Again () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Title Displayed ( R . string . home _ title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Open Charts Screen _ when Click On View Chart () Ġ{ ĊĠĠĠĠĠĠĠ Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Stats 2 0 0 Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. when Click On View Chart ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Bitcoin Chart Activity Opened ( Chart Type . MARK ET _ PRICE ) ĊĠĠĠ Ġ} Ċ }