package Ġuk . n hs . n hs x . covid 1 9 . android . app . test helpers . robots Ċ Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions . click Ċ import Ġandroidx . test . espress o . assertion . View Assertions . does NotExist Ċ import Ġandroidx . test . espress o . assertion . View Assertions . matches Ċ import Ġandroidx . test . espress o . matcher . View Matchers . isChecked Ċ import Ġandroidx . test . espress o . matcher . View Matchers . is Desc endant Of A Ċ import Ġandroidx . test . espress o . matcher . View Matchers . is Displayed Ċ import Ġandroidx . test . espress o . matcher . View Matchers . isNot Checked Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Id Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Text Ċ import Ġorg . hamcrest . Matchers . all Of Ċ import Ġorg . hamcrest . Matchers . not Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . R Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . test helpers . matcher . setChecked Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . test helpers . nested Scroll To Ċ Ċ class ĠEx posure Notification V acc ination Status Robot Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdo ses Yes Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . all Do ses Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġdo ses No Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . all Do ses Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġdate Yes Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . v accine Date Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġdate No Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . v accine Date Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġclin ical Trial Yes Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . clin ical Trial Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġclin ical Trial No Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . clin ical Trial Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmedic ally Ex empt Yes Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . med ically Ex empt Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmedic ally Ex empt No Button Ġ= Ġon View ( ĊĠĠĠĠĠĠĠ Ġall Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Id ( R . id . binary RadioButton Option 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Desc endant Of A ( with Id ( R . id . med ically Ex empt Binary Radio Group )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġcheck Activity Is Displayed () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . ex posure _ notification _ v acc ination _ status _ title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Error Visible ( shouldBe Visible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . v acc ination Status Error View )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( if Ġ( shouldBe Visible ) Ġis Displayed () Ġelse Ġnot ( is Displayed ()))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Do ses Yes Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo ses Yes Button . perform ( nested Scroll To (), Ġset Checked ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Do ses No Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo ses No Button . perform ( nested Scroll To (), Ġset Checked ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Do ses Nothing Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo ses Yes Button . check ( matches ( isNot Checked ())) ĊĠĠĠĠĠĠĠ Ġdo ses No Button . check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Med ically Ex empt Nothing Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt Yes Button . check ( matches ( isNot Checked ())) ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt No Button . check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Med ically Ex empt Yes Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt Yes Button . check ( matches ( isChecked ())) ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt No Button . check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Do ses Yes Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo ses Yes Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isChecked ())) ĊĠĠĠĠĠĠĠ Ġdo ses No Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Do ses No Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo ses No Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isChecked ())) ĊĠĠĠĠĠĠĠ Ġdo ses Yes Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Date Yes Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Yes Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Date No Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġdate No Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Date Nothing Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Yes Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠĠĠĠĠ Ġdate No Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Date No Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġdate No Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isChecked ())) ĊĠĠĠĠĠĠĠ Ġdate Yes Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Continue Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . v acc ination Status Continue Button )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Do ses Date Question Container Displayed ( display ed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . v accine Date Question Container )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( if Ġ( display ed ) Ġmatches ( is Displayed ()) Ġelse Ġdoes NotExist ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Do ses Date Question Displayed With Date ( expected Date : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . v accine Date Question )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatches ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . ex posure _ notification _ v acc ination _ status _ date _ question , Ġexpected Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Approved V acc ines Link () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . approved V acc ines Link )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Clin ical Trial Question Container Displayed ( display ed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . ex posure _ notification _ clin ical _ trial _ question )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( if Ġ( display ed ) Ġmatches ( is Displayed ()) Ġelse Ġdoes NotExist ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Clin ical Trial No Selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġclin ical Trial No Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isChecked ())) ĊĠĠĠĠĠĠĠ Ġclin ical Trial Yes Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( isNot Checked ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Med ically Ex empt Question Container Displayed ( display ed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . med ically Ex empt Question Container )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( if Ġ( display ed ) Ġmatches ( is Displayed ()) Ġelse Ġdoes NotExist ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Clin ical Trial Yes Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġclin ical Trial Yes Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Clin ical Trial No Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġclin ical Trial No Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Med ically Ex empt Yes Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt Yes Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Med ically Ex empt No Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedic ally Ex empt No Button . perform ( nested Scroll To (), Ġclick ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Subtitle Displayed ( display ed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . v acc ination Status Subtitle )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ed ) Ġperform ( nested Scroll To ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( if Ġ( display ed ) Ġis Displayed () Ġelse Ġnot ( is Displayed ()))) ĊĠĠĠ Ġ} Ċ } Ċ