package Ġuk . n hs . n hs x . covid 1 9 . android . app . status Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . google . android . play . core . review . Review Info Ċ import Ġcom . google . android . play . core . review . Review Manager Ċ import Ġcom . google . android . play . core . review . Review ManagerFactory Ċ import Ġcom . google . android . play . core . tasks . Task Ċ import Ġcom . j ero en m ols . feature flag . framework . Feature Flag TestHelper Ċ import Ġio . mock k . called Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . co Verify Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . mock k Static Ċ import Ġio . mock k . un mock k Static Ċ import Ġio . mock k . verify Ċ import Ġio . mock k . verify Order Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ 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 . analytics . Analytics Event . Did Access Local Info Screen Via Banner Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . analytics . Analytics Event . Did Access Local Info Screen Via Notification Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . analytics . Analytics Event . Did Access R is ky Venue M 2 Notification Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . analytics . Analytics Event Processor Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . Trans latable String Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . postcode . PostCode Provider Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . Exposure Notification Manager Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . Exposure Notification Permission Helper Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . Notification Provider Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . Notification Provider . Contact Tracing Hub Action . NAV IG ATE _ AND _ T URN _ ON Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . Notification Provider . Contact Tracing Hub Action . ONLY _ NAV IG ATE Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . Storage Based User Inbox Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Item . Show Encounter Detection Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Item . Show Isolation Expiration Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Item . Show TestResult Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Item . Show Unknown TestResult Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . notifications . user inbox . User Inbox Item . Show Venue Alert Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . qrcode . ris ky ven ues . Last Vis ited Book Test Type Venue Date Provider Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Color Scheme Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Duration Days Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Notification Message Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Risk Indicator Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Risk Indicator Wrapper Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . R is ky Venue MessageType . BOOK _ TEST Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . R is ky Venue MessageType . IN FORM Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . settings . animations . Animations Provider Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . state . Isolation Logical Helper Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . state . Isolation Logical State . Never Is ol ating Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . state . Isolation StateMachine Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . state . as Isolation Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Contact Tracing Hub Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Exposure Consent Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . In App Review Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Isolation Expiration Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Isolation Hub Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Local Message Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . TestResult Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Unknown TestResult Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Navigation Target . Venue Alert Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . Navigate To Contact Tracing Hub Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . Navigate To Isolation Hub Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . Navigate ToLocal Message Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . None Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . Process R is ky Venue Alert Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status Activity . Status Activity Action . Start In App Review Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status ViewModel . Isolation ViewState . Is ol ating Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status ViewModel . Isolation ViewState . Not Is ol ating Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status ViewModel . R is ky PostCode ViewState . Risk Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status ViewModel . R is ky PostCode ViewState . Unknown Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . Status ViewModel . ViewState Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . status . local message . Get Local Message From Storage Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . District Area String Provider Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . util . view utils . Are System Level Animations Enabled Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Zone Offset Ċ Ċ class ĠStatus ViewModel Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġprivate Ġval Ġpost Code Provider Ġ= Ġmock k < PostCode Provider >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġpost Code Indicator Provider Ġ= Ġmock k < R is ky PostCode Indicator Provider >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġshared Preferences Ġ= Ġmock k < SharedPreferences >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġisolation StateMachine Ġ= Ġmock k < Isolation StateMachine >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġuser Inbox Ġ= Ġmock k < User Inbox >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġstorage Based User Inbox Ġ= Ġmock k < Storage Based User Inbox >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġnotification Provider Ġ= Ġmock k < Notification Provider >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġdistrict Area Url Provider Ġ= Ġmock k < District Area String Provider >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġshould Show In App Review Ġ= Ġmock k < Should Show In App Review >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġlast Review Flow Started Date Provider Ġ= ĊĠĠĠĠĠĠĠ Ġmock k < Last App Rating Started Date Provider >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġanimations Provider Ġ= Ġmock k < Animations Provider >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġlast Vis ited Book Test Type Venue Date Provider Ġ= ĊĠĠĠĠĠĠĠ Ġmock k < Last Vis ited Book Test Type Venue Date Provider >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġget Local Message From Storage Ġ= Ġmock k < Get Local Message From Storage >() ĊĠĠĠ Ġprivate Ġval Ġview State Observer Ġ= Ġmock k < Observer < ViewState >>( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġnavigate To Ġ= Ġmock k < Observer < Navigation Target >>( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġanalytics Event Processor Mock Ġ= Ġmock k < Analytics Event Processor >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġexposure Notification Manager Ġ= Ġmock k < Exposure Notification Manager >() ĊĠĠĠ Ġprivate Ġval Ġexposure Notification Permission Helper Factory Ġ= Ġmock k < Exposure Notification Permission Helper . Factory >() ĊĠĠĠ Ġprivate Ġval Ġexposure Notification Permission Helper Ġ= Ġmock k < Exposure Notification Permission Helper >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġare System Level Animations Enabled Ġ= Ġmock k < Are System Level Animations Enabled >( relax Unit Fun Ġ= Ġtrue ) ĊĊĠĠĠ Ġprivate Ġval Ġfixed Clock Ġ= ĠClock . fixed ( Instant . parse (" 2 0 2 0 - 0 5 - 2 2 T 1 0 : 0 0 : 0 0 Z "), ĠZone Offset . UTC ) ĊĠĠĠ Ġprivate Ġval Ġisolation Helper Ġ= ĠI sol ation Logical Helper ( fixed Clock ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Subject : ĠStatus ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġlow R is ky PostCode Indicator Ġ= ĠR isk Indicator ( ĊĠĠĠĠĠĠĠ Ġcolor Scheme Ġ= ĠColor Scheme . GREEN , ĊĠĠĠĠĠĠĠ Ġcolor Scheme V 2 Ġ= ĠColor Scheme . GREEN , ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" low ")), ĊĠĠĠĠĠĠĠ Ġheading Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Heading Ġlow ")), ĊĠĠĠĠĠĠĠ Ġcontent Ġ= ĠTrans latable String ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" en " Ġto Ġ" Content Ġlow " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġlink Title Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Restrictions Ġin Ġyour Ġarea ")), ĊĠĠĠĠĠĠĠ Ġlink Url Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" https :// a . b . c ")), ĊĠĠĠĠĠĠĠ Ġpolicy Data Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmedium R is ky PostCode Indicator Ġ= ĠR isk Indicator ( ĊĠĠĠĠĠĠĠ Ġcolor Scheme Ġ= ĠColor Scheme . YELLOW , ĊĠĠĠĠĠĠĠ Ġcolor Scheme V 2 Ġ= ĠColor Scheme . YELLOW , ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" medium ")), ĊĠĠĠĠĠĠĠ Ġheading Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Heading Ġmedium ")), ĊĠĠĠĠĠĠĠ Ġcontent Ġ= ĠTrans latable String ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" en " Ġto Ġ" Content Ġmedium " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġlink Title Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Restrictions Ġin Ġyour Ġarea ")), ĊĠĠĠĠĠĠĠ Ġlink Url Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" https :// a . b . c ")), ĊĠĠĠĠĠĠĠ Ġpolicy Data Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġhigh R is ky PostCode Indicator Ġ= ĠR isk Indicator ( ĊĠĠĠĠĠĠĠ Ġcolor Scheme Ġ= ĠColor Scheme . RED , ĊĠĠĠĠĠĠĠ Ġcolor Scheme V 2 Ġ= ĠColor Scheme . RED , ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" high ")), ĊĠĠĠĠĠĠĠ Ġheading Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Heading Ġhigh ")), ĊĠĠĠĠĠĠĠ Ġcontent Ġ= ĠTrans latable String ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" en " Ġto Ġ" Content Ġhigh " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġlink Title Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" Restrictions Ġin Ġyour Ġarea ")), ĊĠĠĠĠĠĠĠ Ġlink Url Ġ= ĠTrans latable String ( map Of (" en " Ġto Ġ" https :// a . b . c ")), ĊĠĠĠĠĠĠĠ Ġpolicy Data Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġlow Risk Ġ= ĠR isk ( ĊĠĠĠĠĠĠĠ Ġmain PostCode Ġ= Ġ" A 1 ", ĊĠĠĠĠĠĠĠ Ġrisk Indicator Ġ= Ġlow R is ky PostCode Indicator , ĊĠĠĠĠĠĠĠ Ġrisk Level From Local Authority Ġ= Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġmedium Risk Ġ= ĠR isk ( ĊĠĠĠĠĠĠĠ Ġmain PostCode Ġ= Ġ" A 1 ", ĊĠĠĠĠĠĠĠ Ġrisk Indicator Ġ= Ġmedium R is ky PostCode Indicator , ĊĠĠĠĠĠĠĠ Ġrisk Level From Local Authority Ġ= Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġhigh Risk Ġ= ĠR isk ( ĊĠĠĠĠĠĠĠ Ġmain PostCode Ġ= Ġ" A 1 ", ĊĠĠĠĠĠĠĠ Ġrisk Indicator Ġ= Ġhigh R is ky PostCode Indicator , ĊĠĠĠĠĠĠĠ Ġrisk Level From Local Authority Ġ= Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġdefault ViewState Ġ= ĠView State ( ĊĠĠĠĠĠĠĠ Ġcurrent Date Ġ= ĠLocalDate . now ( fixed Clock ), ĊĠĠĠĠĠĠĠ Ġarea Risk State Ġ= Ġmedium Risk , ĊĠĠĠĠĠĠĠ Ġisolation State Ġ= ĠDEFAULT _ IS OL ATION _ VIEW _ STATE , ĊĠĠĠĠĠĠĠ Ġshow Report Sy mptoms Button Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġexposure Notifications Enabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġanimations Enabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġlocal Message Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Provider . value Ġ} Ġreturns ĠDEFAULT _ POST _ CODE ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġanimations Provider . in App Animation Enabled Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ} Ġreturns ĠR isk Indicator Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" medium ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedium R is ky PostCode Indicator ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Notification Permission Helper Factory . create ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġ} Ġreturns Ġexposure Notification Permission Helper ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlast Vis ited Book Test Type Venue Date Provider . contains Book Test Type Venue At Risk () Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns ĠDEFAULT _ INFORMATION _ SCREEN _ STATE ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġisolation StateMachine . read Logical State () Ġ} Ġreturns ĠDEFAULT _ IS OL ATION _ STATE ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġdistrict Area Url Provider . provide ( any ()) Ġ} Ġreturns ĠDEFAULT _ LATE ST _ AD VICE _ URL _ RES _ ID ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġexposure Notification Manager . isEnabled () Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġget Local Message From Storage () Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġsetup Test Subject () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . view State . remove Observer ( view State Observer ) ĊĠĠĠĠĠĠĠ ĠFeature Flag TestHelper . clear Feature Flags () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġchanged Ġfrom Ġhigh Ġto Ġlow `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ}. returns ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR isk Indicator Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" low ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlow R is ky PostCode Indicator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġlow Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġchanged Ġfrom Ġhigh Ġto Ġmedium `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġmedium Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġchanged Ġfrom Ġlow Ġto Ġhigh `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ}. returns ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR isk Indicator Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" high ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhigh R is ky PostCode Indicator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġhigh Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġchanged Ġfrom Ġlow Ġto Ġmedium `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġmedium Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġdid Ġnot Ġchange Ġand Ġis Ġlow `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ}. returns ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR isk Indicator Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" low ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlow R is ky PostCode Indicator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġlow Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġdid Ġnot Ġchange Ġand Ġis Ġmedium `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġmedium Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġisolation Ġadvice Ġwhen Ġnot Ġin Ġdefault Ġstate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontact Case Ġ= Ġisolation Helper . contact Case () ĊĠĠĠĠĠĠĠ Ġval Ġisolation State Ġ= Ġcontact Case . as Isolation () ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġisolation StateMachine . read Logical State () Ġ} Ġreturns Ġisolation State ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġdistrict Area Url Provider . provide ( R . string . url _ latest _ ad vice _ in _ is olation ) Ġ} Ġreturns Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġco Verify Ġ{ Ġdistrict Area Url Provider . provide ( R . string . url _ latest _ ad vice _ in _ is olation ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview State Observer . on Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ViewState . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Report Sy mptoms Button Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġisolation State Ġ= ĠI sol ating ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġisolation Start Ġ= Ġcontact Case . startDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpiry Date Ġ= Ġcontact Case . expiry Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġisolation Ad vice Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` area Ġrisk Ġdid Ġnot Ġchange Ġand Ġis Ġhigh `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ}. returns ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR isk Indicator Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" high ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhigh R is ky PostCode Indicator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= Ġhigh Risk )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Resume Ġupdated Ġview Ġstate Ġand Ġregisters Ġuser Ġin box Ġlistener `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . on Resume () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġshared Preferences . register On Shared Preference ChangeListener ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġstorage Based User Inbox . set Storage ChangeListener ( any ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Pause Ġun registers Ġuser Ġin box Ġlistener `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . on Pause () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġshared Preferences . unregister On Shared Preference ChangeListener ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġstorage Based User Inbox . remove Storage ChangeListener () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ris ky Ġpost Ġcode Ġindicator Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= ĠUnknown )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ris ky Ġpost Ġcode Ġindicator Ġhas Ġno Ġrisk Ġset `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpost Code Indicator Provider . ris ky PostCode Indicator Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR isk Indicator Wrapper (" medium ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( area Risk State Ġ= ĠUnknown )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animation Ġprovider Ġvalue Ġis Ġtrue Ġand Ġsystem Ġlevel Ġanimations Ġenabled Ġshould Ġupdate Ġstate Ġto Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġanimations Provider . in App Animation Enabled Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġare System Level Animations Enabled . invoke () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( animations Enabled Ġ= Ġtrue )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animation Ġprovider Ġvalue Ġis Ġfalse Ġand Ġsystem Ġlevel Ġanimations Ġenabled Ġshould Ġupdate Ġstate Ġto Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġanimations Provider . in App Animation Enabled Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġare System Level Animations Enabled . invoke () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( animations Enabled Ġ= Ġfalse )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animation Ġprovider Ġvalue Ġis Ġtrue Ġand Ġsystem Ġlevel Ġanimations Ġdisabled Ġshould Ġupdate Ġstate Ġto Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġanimations Provider . in App Animation Enabled Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġare System Level Animations Enabled . invoke () Ġ} Ġreturns Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( animations Enabled Ġ= Ġfalse )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animation Ġprovider Ġvalue Ġis Ġfalse Ġand Ġsystem Ġlevel Ġanimations Ġdisabled Ġshould Ġupdate Ġstate Ġto Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġanimations Provider . in App Animation Enabled Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġare System Level Animations Enabled . invoke () Ġ} Ġreturns Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( animations Enabled Ġ= Ġfalse )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġon Ġdate Ġchange `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoday Ġ= ĠLocalDate . now ( fixed Clock ) ĊĠĠĠĠĠĠĠ Ġval Ġtomorrow Ġ= Ġtoday . plus Days ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState ( today ) ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState ( today ) ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState ( tom orrow ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( current Date Ġ= Ġtoday )) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( current Date Ġ= Ġtomorrow )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġon Ġnull Ġlocal Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( local Message Ġ= Ġnull )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġon Ġnew Ġlocal Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġmock k < Notification Message >() ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġget Local Message From Storage () Ġ} Ġreturns Ġexpected ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġview State Observer . on Changed ( default ViewState . copy ( local Message Ġ= Ġexpected )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġwith Ġisolation Ġexpiration `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠLocalDate . now ( fixed Clock ) ĊĠĠĠĠĠĠĠ Ġval Ġin box Item Ġ= ĠShow Isolation Expiration ( now ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns Ġin box Item ĊĊĠĠĠĠĠĠĠ Ġtest Subject . user Inbox Storage ChangeListener . notify Changed () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Isolation Expiration ( now )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġwith Ġshow Ġtest Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns ĠShow TestResult ĊĊĠĠĠĠĠĠĠ Ġtest Subject . user Inbox Storage ChangeListener . notify Changed () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnotification Provider . cancel TestResult () Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( TestResult ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġwith Ġshow Ġunknown Ġtest Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns ĠShow Unknown TestResult ĊĊĠĠĠĠĠĠĠ Ġtest Subject . user Inbox Storage ChangeListener . notify Changed () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Unknown TestResult ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġwith Ġshow Ġven ue Ġalert `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġin box Item Ġ= ĠShow Venue Alert (" venue 1 ", ĠIN FORM ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns Ġin box Item ĊĊĠĠĠĠĠĠĠ Ġtest Subject . user Inbox Storage ChangeListener . notify Changed () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Venue Alert (" venue 1 ", ĠIN FORM )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update Ġview Ġstate Ġwith Ġshow Ġencounter Ġdetection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns ĠShow Encounter Detection ĊĊĠĠĠĠĠĠĠ Ġtest Subject . user Inbox Storage ChangeListener . notify Changed () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Exposure Consent ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` update ViewState And Check User Inbox Ġshould Ġupdate Ġview Ġstate Ġand Ġfetch Ġfrom Ġuser Ġin box `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Inbox . fetch Inbox () Ġ} Ġreturns ĠShow TestResult ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġview State Observer . on Changed ( default ViewState ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġuser Inbox . fetch Inbox () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Ġactivate Ġcontact Ġtracing Ġbutton Ġclicked Ġenables Ġcontact Ġtracing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject . on Activate Contact Tracing Button Clicked () ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġexposure Notification Permission Helper . start Exposure Notifications () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠNavigate To Contact Tracing Hub Ġand Ġaction ĠNAV IG ATE _ AND _ T URN _ ON Ġnavig ates Ġto ĠContact Tracing Hub `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate To Contact Tracing Hub ( action Ġ= ĠNAV IG ATE _ AND _ T URN _ ON )) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Contact Tracing Hub ( should Turn On Contact Tracing Ġ= Ġtrue )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠNavigate To Contact Tracing Hub Ġand Ġaction ĠONLY _ NAV IG ATE Ġnavig ates Ġto ĠContact Tracing Hub `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate To Contact Tracing Hub ( action Ġ= ĠONLY _ NAV IG ATE )) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Contact Tracing Hub ( should Turn On Contact Tracing Ġ= Ġfalse )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Navigate To Contact Tracing Hub Ġconsumed Ġafter Ġfirst Ġcall `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate To Contact Tracing Hub ( action Ġ= ĠONLY _ NAV IG ATE )) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Contact Tracing Hub ( should Turn On Contact Tracing Ġ= Ġfalse )) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠNavigate ToLocal Message Ġset Ġthen Ġemit ĠLocal Message `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate ToLocal Message ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Local Message ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġanalytics Event Processor Mock . track ( Did Access Local Info Screen Via Notification ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Navigate ToLocal Message Ġconsumed Ġafter Ġfirst Ġcall `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate ToLocal Message ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Local Message ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġlocal Ġmessage Ġbanner Ġis Ġclicked Ġtrack Ġanalytics Ġevent ĠDid Access Local Info Screen Via Banner `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject () ĊĊĠĠĠĠĠĠĠ Ġtest Subject . local Message Banner Clicked () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġanalytics Event Processor Mock . track ( Did Access Local Info Screen Via Banner ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠProcess R is ky Venue Alert Ġand Ġtype ĠBO OK _ TEST Ġset , Ġtracks Ġdid Access R is ky Venue M 2 Notification Ġonce `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Process R is ky Venue Alert ( type Ġ= ĠBO OK _ TEST )) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġnavigate To . on Changed ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġanalytics Event Processor Mock . track ( Did Access R is ky Venue M 2 Notification ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( analytics Event Processor Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠProcess R is ky Venue Alert Ġand Ġtype ĠIN FORM Ġdo Ġnothing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Process R is ky Venue Alert ( type Ġ= ĠIN FORM )) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġnavigate To . on Changed ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġanalytics Event Processor Mock . track ( any ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠNavigate To Isolation Hub Ġset Ġthen Ġemit ĠI sol ation Hub `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate To Isolation Hub ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Isolation Hub ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Navigate To Isolation Hub Ġconsumed Ġafter Ġfirst Ġcall `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Navigate To Isolation Hub ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( Isolation Hub ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` attempt Ġto Ġstart Ġapp Ġreview Ġflow Ġwhen Ġentering Ġapp Ġreview Ġflow Ġis Ġnot Ġpossible `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject () ĊĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġmock k < Activity >() ĊĊĠĠĠĠĠĠĠ Ġmock k Static ( Review ManagerFactory :: class ) ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġshould Show In App Review () Ġ} Ġreturns Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtest Subject . attempt To Start App Review Flow ( activity ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠReview ManagerFactory . create ( any ()) Ġwas Not Ġcalled Ġ} ĊĊĠĠĠĠĠĠĠ Ġun mock k Static ( Review ManagerFactory :: class ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` attempt Ġto Ġstart Ġapp Ġreview Ġflow Ġwhen Ġentering Ġapp Ġreview Ġflow Ġis Ġpossible `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject () ĊĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġmock k < Activity >() ĊĠĠĠĠĠĠĠ Ġval Ġreview Manager Ġ= Ġmock k < Review Manager >() ĊĠĠĠĠĠĠĠ Ġval Ġreview Info Task Ġ= Ġmock k < Task < Review Info >>( relax ed Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġmock k Static ( Review ManagerFactory :: class ) ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġshould Show In App Review () Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠReview ManagerFactory . create ( activity ) Ġ} Ġreturns Ġreview Manager ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġreview Manager . request Review Flow () Ġ} Ġreturns Ġreview Info Task ĊĊĠĠĠĠĠĠĠ Ġtest Subject . attempt To Start App Review Flow ( activity ) ĊĊĠĠĠĠĠĠĠ Ġverify Order Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReview ManagerFactory . create ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreview Manager . request Review Flow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreview Info Task . add On Complete Listener ( any ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġun mock k Static ( Review ManagerFactory :: class ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Activity Result Ġdeleg ates Ġcall Ġto ĠEx posure Notification Permission Helper `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Request Code Ġ= Ġ 1 2 3 ĊĠĠĠĠĠĠĠ Ġval Ġexpected ResultCode Ġ= Ġ 4 5 6 ĊĠĠĠĠĠĠĠ Ġtest Subject . on Activity Result ( expected Request Code , Ġexpected ResultCode ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġexposure Notification Permission Helper . on Activity Result ( expected Request Code , Ġexpected ResultCode ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠStart In App Review Ġset Ġthen Ġemit ĠIn App Review `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Start In App Review ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( In App Review ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Start In App Review Ġconsumed Ġafter Ġfirst Ġcall `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( Start In App Review ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnavigate To . on Changed ( In App Review ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġevaluating Ġnavigation Ġwith ĠNone Ġset Ġthen Ġemit Ġnothing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Test Subject ( None ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . update ViewState And Check User Inbox () ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Test Subject ( status Activity Action : ĠStatus Activity Action Ġ= ĠNone ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Subject Ġ= ĠStatus ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Code Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Code Indicator Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġisolation StateMachine , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Inbox , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Based User Inbox , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdistrict Area Url Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Show In App Review , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Review Flow Started Date Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Event Processor Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimations Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixed Clock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Notification Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġare System Level Animations Enabled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Local Message From Storage , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Notification Permission Helper Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Activity Action ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtest Subject . view State . observe Fore ver ( view State Observer ) ĊĠĠĠĠĠĠĠ Ġtest Subject . navigation Target (). observe Fore ver ( navigate To ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ POST _ CODE Ġ= Ġ" A 1 " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEFAULT _ INFORMATION _ SCREEN _ STATE Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEFAULT _ IS OL ATION _ VIEW _ STATE Ġ= ĠNot Is ol ating ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDEFAULT _ IS OL ATION _ STATE Ġ= ĠNever Is ol ating ( is olation Configuration Ġ= ĠDuration Days (), Ġnegative Test Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ LATE ST _ AD VICE _ URL _ RES _ ID Ġ= Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ