package Ġuk . n hs . n hs x . covid 1 9 . android . app . flow . analytics Ċ Ċ import Ġcom . j ero en m ols . feature flag . framework . Feature Flag . DA IL Y _ CONTACT _ TEST ING Ċ import Ġcom . j ero en m ols . feature flag . framework . Feature Flag TestHelper Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Test Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . flow . functional ities . Daily Contact Testing Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . flow . functional ities . R is ky Contact Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . remote . data . Metrics Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . report . not Reported Ċ Ċ class ĠDaily Contact Testing Opt In Analytics Test Ġ: ĠAnalytics Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġris ky Contact Ġ= ĠR is ky Contact ( this ) ĊĠĠĠ Ġprivate Ġvar Ġdaily Contact Testing Ġ= ĠDaily Contact Testing () ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġoverride Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . te ar Down () ĊĠĠĠĠĠĠĠ ĠFeature Flag TestHelper . clear Feature Flags () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcontact Case Only _ opt In To Daily Contact Testing _ set Appro priate Analytics Flags () Ġ= Ġnot Reported Ġ{ ĊĠĠĠĠĠĠĠ ĠFeature Flag TestHelper . enable Feature Flag ( DA IL Y _ CONTACT _ TEST ING ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCurrent Ġdate : Ġ 1 st ĠJan ĊĠĠĠĠĠĠĠ Ġ// ĠStarting Ġstate : ĠApp Ġrunning Ġnormally , Ġnot Ġin Ġisolation ĊĠĠĠĠĠĠĠ Ġ// ĠCurrent Ġdate : Ġ 2 nd ĠJan Ġ-> ĠAnalytics Ġpacket Ġfor : Ġ 1 st ĠJan ĊĠĠĠĠĠĠĠ Ġassert Analytics Packet Is Normal () ĊĊĠĠĠĠĠĠĠ Ġ// ĠHas Ġris ky Ġcontact Ġon Ġ 2 nd ĠJan ĊĠĠĠĠĠĠĠ Ġ// ĠI sol ation Ġend Ġdate : Ġ 1 3 th ĠJan ĊĠĠĠĠĠĠĠ Ġris ky Contact . trigger Via Circuit Breaker ( this :: advance To Next Background Task Execution ) ĊĠĠĠĠĠĠĠ Ġris ky Contact . ack nowledge () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCurrent Ġdate : Ġ 3 rd ĠJan Ġ-> ĠAnalytics Ġpacket Ġfor : Ġ 2 nd ĠJan ĊĠĠĠĠĠĠĠ Ġassert On Fields Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠMetrics :: received R is ky Contact Notification ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠMetrics :: ack nowled ged Start Of Isolation Due To R is ky Contact ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠMetrics :: received Active I pc Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠMetrics :: started Isolation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: is Is ol ating Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: is Is ol ating For H ad R is ky Contact Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: has H ad R is ky Contact Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: have Active I pc Token Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġignore ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtotal R is ky Contact Reminder Notifications Ġis Ġset Ġbased Ġon ĠAlarm Manager Ġand Ġintroduces Ġfl ak iness ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMetrics :: total R is ky Contact Reminder Notifications ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠOpt Ġin Ġto Ġdaily Ġcontact Ġtesting Ġon Ġ 3 rd ĠJan ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġalso Ġupdates Ġthe Ġexpiration Ġdate Ġof Ġthe Ġcontact Ġcase Ġisolation Ġto Ġthe Ġ 3 rd Ġof ĠJanuary ĊĠĠĠĠĠĠĠ Ġdaily Contact Testing . opt In () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCurrent Ġdate : Ġ 4 th ĠJan Ġ-> ĠAnalytics Ġpacket Ġfor : Ġ 3 rd ĠJan ĊĠĠĠĠĠĠĠ Ġassert On Fields Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠMetrics :: declared Negative Result From D CT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: is Is ol ating Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: is Is ol ating For H ad R is ky Contact Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: has H ad R is ky Contact Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: have Active I pc Token Background Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġignore ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtotal R is ky Contact Reminder Notifications Ġis Ġset Ġbased Ġon ĠAlarm Manager Ġand Ġintroduces Ġfl ak iness ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMetrics :: total R is ky Contact Reminder Notifications ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠD ates : Ġ 4 th - 1 6 th ĠJan Ġ-> ĠAnalytics Ġpackets Ġfor : Ġ 3 rd - 1 5 th ĠJan ĊĠĠĠĠĠĠĠ Ġassert On Fields For DateRange ( 4 .. 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Present ( Metrics :: has H ad R is ky Contact Background Tick ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCurrent Ġdate : Ġ 1 7 th ĠJan ĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġopt ing Ġout Ġin Ġto Ġdaily Ġcontact Ġtesting , Ġexpiry Ġdate Ġof Ġisolation Ġis Ġequal Ġto Ġopt - in Ġdate Ġ( 3 rd ĠJan ) ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġinformation Ġis Ġdeleted Ġ 1 4 Ġdays Ġafter Ġexpiration Ġdate , Ġwhich Ġwas Ġthe Ġ 1 7 th ĊĠĠĠĠĠĠĠ Ġassert Analytics Packet Is Normal () ĊĠĠĠ Ġ} Ċ } Ċ