package Ġcom . bos w el ja . ep hemer is . views Ċ Ċ import Ġandroidx . fragment . app . testing . Fragment Scenario Ċ import Ġandroidx . fragment . app . testing . launch Fragment In Container Ċ import Ġandroidx . test . espress o . Esp ress o . on Idle Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions . swipe Left Ċ import Ġandroidx . test . espress o . action . View Actions . swipe Right Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Id Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Large Test Ċ import Ġcom . bos w el ja . ep hemer is . core . data . Calendar Month Page Source Ċ import Ġcom . bos w el ja . ep hemer is . core . data . Calendar Page Source Ċ import Ġcom . bos w el ja . ep hemer is . core . datetime . Year Month Ċ import Ġcom . bos w el ja . ep hemer is . views . Ep hemer is Calendar View Actions . animate Scroll To Ċ import Ġcom . bos w el ja . ep hemer is . views . Ep hemer is Calendar View Actions . scrollTo Ċ import Ġcom . bos w el ja . ep hemer is . views . date bind ers . Basic Date Binder Ċ import Ġkotlinx . datetime . DateTime Unit Ċ import Ġkotlinx . datetime . LocalDate Ċ import Ġkotlinx . datetime . Month Ċ import Ġkotlinx . datetime . minus Ċ import Ġkotlinx . datetime . plus Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNot Equals Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . time . DayOfWeek Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Large Test Ċ class ĠEp hemer is Calendar View Displayed DateRange Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġscroll ToDate _ updates Displayed DateRange () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscenario Ġ= Ġlaunch Fragment In Container < Ep hemer is Calendar Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġcalendar View Ġ= Ġscenario . init AndGet Calendar View () ĊĊĠĠĠĠĠĠĠ Ġvar Ġnotified DateRange : ĠClosed Range < LocalDate >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcalendar View . setOn Displayed DateRange ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtest With Scrolling ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Scroll Ġ= Ġ{ Ġ_, Ġdirection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinitial Item : ĠClosed Range < LocalDate > Ġ= Ġcalendar View . display ed DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate To Scroll Ġ= Ġwhen Ġ( direction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Left To Right Ġ-> Ġinitial Item . start . minus ( 1 , ĠDateTime Unit . DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Right To Left Ġ-> Ġinitial Item . end Inclusive . plus ( 1 , ĠDateTime Unit . DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( scrollTo ( date To Scroll )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthe Ġdisplayed Ġdate Ġrange Ġupdated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( not ified DateRange ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Not Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Item , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġanimate Scroll ToDate _ updates Displayed DateRange () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscenario Ġ= Ġlaunch Fragment In Container < Ep hemer is Calendar Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġcalendar View Ġ= Ġscenario . init AndGet Calendar View () ĊĊĠĠĠĠĠĠĠ Ġvar Ġnotified DateRange : ĠClosed Range < LocalDate >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcalendar View . setOn Displayed DateRange ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtest With Scrolling ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Scroll Ġ= Ġ{ Ġ_, Ġdirection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinitial Item : ĠClosed Range < LocalDate > Ġ= Ġcalendar View . display ed DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate To Scroll Ġ= Ġwhen Ġ( direction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Left To Right Ġ-> Ġinitial Item . start . minus ( 1 , ĠDateTime Unit . DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Right To Left Ġ-> Ġinitial Item . end Inclusive . plus ( 1 , ĠDateTime Unit . DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( animate Scroll To ( date To Scroll )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthe Ġdisplayed Ġdate Ġrange Ġupdated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( not ified DateRange ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Not Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Item , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuser Scroll s _ updates Displayed DateRange () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInit Ġcalendar ĊĠĠĠĠĠĠĠ Ġval Ġscenario Ġ= Ġlaunch Fragment In Container < Ep hemer is Calendar Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġcalendar View Ġ= Ġscenario . init AndGet Calendar View () ĊĊĠĠĠĠĠĠĠ Ġvar Ġnotified DateRange : ĠClosed Range < LocalDate >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcalendar View . setOn Displayed DateRange ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtest With Scrolling ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Scroll Ġ= Ġ{ Ġ_, Ġdirection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinitial Item : ĠClosed Range < LocalDate > Ġ= Ġcalendar View . display ed DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġwhen Ġ( direction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Left To Right Ġ-> Ġswipe Right () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . Right To Left Ġ-> Ġswipe Left () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( action ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthe Ġdisplayed Ġdate Ġrange Ġupdated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( not ified DateRange ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Not Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Item , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotified DateRange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġscroll ToDate _ height Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInit Ġcalendar ĊĠĠĠĠĠĠĠ Ġval Ġscenario Ġ= Ġlaunch Fragment In Container < Ep hemer is Calendar Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġcalendar View Ġ= Ġscenario . init AndGet Calendar View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Source Ġ= ĠCalendar Month Page Source ( DayOfWeek . S UND AY , ĠYear Month ( 2 0 2 2 , ĠMonth . AP R IL )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġon Idle () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġheight Ġincrease ĊĠĠĠĠĠĠĠ Ġval Ġpre Height Ġ= Ġcalendar View . height ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( scrollTo ( LocalDate ( 2 0 2 2 , ĠMonth . J UL Y , Ġ 1 ))) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( pre Height , Ġcalendar View . height ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġheight Ġdecrease ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( scrollTo ( LocalDate ( 2 0 2 2 , ĠMonth . AP R IL , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠassertEquals ( pre Height , Ġcalendar View . height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġanimate Scroll ToDate _ height Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInit Ġcalendar ĊĠĠĠĠĠĠĠ Ġval Ġscenario Ġ= Ġlaunch Fragment In Container < Ep hemer is Calendar Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġcalendar View Ġ= Ġscenario . init AndGet Calendar View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Source Ġ= ĠCalendar Month Page Source ( DayOfWeek . S UND AY , ĠYear Month ( 2 0 2 2 , ĠMonth . AP R IL )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġon Idle () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġheight Ġincrease ĊĠĠĠĠĠĠĠ Ġval Ġpre Height Ġ= Ġcalendar View . height ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( animate Scroll To ( LocalDate ( 2 0 2 2 , ĠMonth . J UL Y , Ġ 1 ))) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( pre Height , Ġcalendar View . height ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest Ġheight Ġdecrease ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . calendar _ view )). perform ( animate Scroll To ( LocalDate ( 2 0 2 2 , ĠMonth . AP R IL , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠassertEquals ( pre Height , Ġcalendar View . height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFragment Scenario < Ep hemer is Calendar Fragment >. init AndGet Calendar View ( ĊĠĠĠĠĠĠĠ Ġpage Source : ĠCalendar Page Source Ġ= ĠCalendar Month Page Source ( DayOfWeek . S UND AY , ĠYear Month ( 2 0 2 2 , ĠMonth . AP R IL )) ĊĠĠĠ Ġ): ĠEp hemer is Calendar View Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcalendar View : ĠEp hemer is Calendar View ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġon Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . calendar View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar View Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Binder Ġ= ĠBasic Date Binder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . page Source Ġ= Ġpage Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar View !! ĊĠĠĠ Ġ} Ċ } Ċ