package Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter Ċ Ċ import Ġcom . google . android . gms . near by . ex posure notification . Calibration Confidence Ċ import Ġcom . google . android . gms . near by . ex posure notification . Exposure Window Ċ import Ġcom . google . android . gms . near by . ex posure notification . Exposure Window . Builder Ċ import Ġcom . google . android . gms . near by . ex posure notification . Inf ect ious ness Ċ import Ġcom . google . android . gms . near by . ex posure notification . Report Type Ċ import Ġcom . google . android . gms . near by . ex posure notification . Scan Instance Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . co Verify Ċ import Ġio . mock k . co Verify Order Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . Result . Failure Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . Result . Success Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . common . Submit Empty Data Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter . calculation . Day Risk Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter . calculation . Exposure Window Risk Manager Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter . calculation . Exposure Window With Risk Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter . calculation . Partition Exposure Windows Result Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter . calculation . Risk Calculation Result Ċ import Ġuk . n hs . n hs x . covid 1 9 . android . app . payment . Check Isolation Payment Token Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Instant Ċ import Ġjava . time . Zone Offset Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠEx posure Notification Work Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsubmit Empty Data Ġ= Ġmock k < Submit Empty Data >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġcheck Isolation Payment Token Ġ= Ġmock k < Check Isolation Payment Token >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġexposure Circuit Breaker Ġ= Ġmock k < Exposure Circuit Breaker >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġexposure Circuit Breaker Info Provider Ġ= Ġmock k < Exposure Circuit Breaker Info Provider >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġexposure Window Risk Manager Ġ= Ġmock k < Exposure Window Risk Manager >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġep ide mio logy DataManager Ġ= Ġmock k < Ep ide mio logy DataManager >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġhas Successfully Processed New Exposure Provider Ġ= ĊĠĠĠĠĠĠĠ Ġmock k < Has Successfully Processed New Exposure Provider >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġclock Ġ= ĠClock . fixed ( Instant . parse (" 2 0 2 0 - 1 2 - 2 4 T 2 0 : 0 0 : 0 0 Z "), ĠZone Offset . UTC ) ĊĊĠĠĠ Ġprivate Ġval Ġtest Subject Ġ= ĠEx posure Notification Work ( ĊĠĠĠĠĠĠĠ Ġsubmit Empty Data , ĊĠĠĠĠĠĠĠ Ġcheck Isolation Payment Token , ĊĠĠĠĠĠĠĠ Ġexposure Circuit Breaker , ĊĠĠĠĠĠĠĠ Ġexposure Circuit Breaker Info Provider , ĊĠĠĠĠĠĠĠ Ġexposure Window Risk Manager , ĊĠĠĠĠĠĠĠ Ġep ide mio logy DataManager , ĊĠĠĠĠĠĠĠ Ġhas Successfully Processed New Exposure Provider , ĊĠĠĠĠĠĠĠ Ġclock ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġhas Successfully Processed New Exposure Provider . value Ġ} Ġreturns Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` handle Ġno Ġmatches Ġcalls Ġfake Ġcircuit Ġbreak er Ġthen Ġsubmit s Ġfake Ġexposure Ġwindows Ġand Ġreturns Ġsuccess `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . do Not Evaluate Risk () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ Ġsubmit Empty Data () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġep ide mio logy DataManager . submit Empty Exposure Windows () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker Info Provider . add ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Initial ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġresult Ġis ĠSuccess Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle Un processed Requests Ġwithout Ġcircuit Ġbreak er Ġinfo Ġitems Ġreturn Ġsuccess `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġexposure Circuit Breaker Info Provider . info Ġ} Ġreturns Ġempty List () ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . handle Un processed Requests () ĊĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Initial ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle Un processed Requests Ġwithout Ġapproval Ġtoken Ġtrigger Ġinitial Ġcircuit Ġbreak er Ġand Ġreturn Ġsuccess `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġexposure Circuit Breaker Info Provider . info Ġ} Ġreturns ĠlistOf ( info Without Token ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . handle Un processed Requests () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġexposure Circuit Breaker . handle Initial ( info Without Token ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle Un processed Requests Ġwith Ġapproval Ġtoken Ġtrigger Ġpolling Ġcircuit Ġbreak er Ġand Ġreturn Ġsuccess `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġexposure Circuit Breaker Info Provider . info Ġ} Ġreturns ĠlistOf ( info With Token ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . handle Un processed Requests () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Initial ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( info With Token ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle Un processed Requests Ġwith Ġtwo Ġexposure Ġcircuit Ġbreak er Ġinfo Ġitems Ġreturns Ġsuccess `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġexposure Circuit Breaker Info Provider . info Ġ} Ġreturns ĠlistOf ( info Without Token , Ġinfo With Token ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . handle Un processed Requests () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify Order Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Circuit Breaker . handle Initial ( info Without Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Circuit Breaker . handle Polling ( info With Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Isolation Payment Token . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle New Exposure Ġwith Ġno Ġrisk Ġshould Ġprovide Ġexposure Ġwindows Ġto Ġep ide mio logy Ġdata Ġmanager `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġexposure Window Risk Manager . get Risk () Ġ} Ġreturns ĠR isk Calculation Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelevant Risk Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartition ed Exposure Windows Ġ= ĠPartition Exposure Windows Result ( emptyList (), Ġempty List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . evaluate Risk () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify Order Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Empty Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġep ide mio logy DataManager . store And Submit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPartition Exposure Windows Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġris ky Exposure Windows Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon R is ky Exposure Windows Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Isolation Payment Token . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker Info Provider . add ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Initial ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle New Exposure Ġwith Ġrisk Ġshould Ġadd Ġexposure Ġcircuit Ġbreak er Ġinfo Ġitem , Ġprovide Ġexposure Ġwindows Ġto Ġep ide mio logy Ġdata Ġmanager Ġand Ġattempt Ġinitial Ġcall `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrelevant Risk Ġ= ĠDay Risk ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġris ky Exposure Windows Ġ= Ġget Exposure Windows With Risk ( is Consider ed R is ky Ġ= Ġtrue , Ġ 7 . 0 , Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnon R is ky Exposure Windows Ġ= Ġget Exposure Windows With Risk ( is Consider ed R is ky Ġ= Ġfalse , Ġ 0 . 1 , Ġ 0 . 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Info Ġ= Ġget Exposure Circuit Breaker Info ( relevant Risk ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġexposure Window Risk Manager . get Risk () Ġ} Ġreturns ĠR isk Calculation Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelevant Risk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPartition Exposure Windows Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġris ky Exposure Windows Ġ= Ġris ky Exposure Windows , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon R is ky Exposure Windows Ġ= Ġnon R is ky Exposure Windows ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . evaluate Risk () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify Order Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Circuit Breaker Info Provider . add ( expected Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġep ide mio logy DataManager . store And Submit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPartition Exposure Windows Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġris ky Exposure Windows Ġ= Ġris ky Exposure Windows , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon R is ky Exposure Windows Ġ= Ġnon R is ky Exposure Windows ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Circuit Breaker . handle Initial ( expected Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Isolation Payment Token . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker . handle Polling ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Success ( Unit ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` calling Ġhandle New Exposure Ġresults Ġin Ġexception Ġduring Ġrisk Ġscore Ġcalculation `() Ġ= ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Exception Ġ= ĠException () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġexposure Window Risk Manager . get Risk () Ġ} Ġthrows Ġexpected Exception ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} Ġreturns ĠSuccess ( Unit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . evaluate Risk () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( false ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġexposure Circuit Breaker Info Provider . add ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġhas Successfully Processed New Exposure Provider Ġset Property Ġ" value " Ġvalue Ġeq ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġep ide mio logy DataManager . store And Submit ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcheck Isolation Payment Token . invoke () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Failure ( expected Exception ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Exposure Circuit Breaker Info ( day Risk : ĠDay Risk ): ĠEx posure Circuit Breaker Info Ġ= ĊĠĠĠĠĠĠĠ ĠEx posure Circuit Breaker Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Risk Score Ġ= Ġday Risk . calculated Risk , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart OfDay Millis Ġ= Ġday Risk . start OfDay Millis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Key Count Ġ= Ġday Risk . matched Key Count , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Calculation Version Ġ= Ġday Risk . risk Calculation Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Notification Date Ġ= Ġclock . instant (). to Epoch Milli (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapproval Token Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnow Ġ= ĠInstant . now (). to Epoch Milli () ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinfo Without Token Ġ= ĠEx posure Circuit Breaker Info ( 1 . 0 , Ġnow , Ġ 1 , Ġ 2 , Ġnow ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinfo With Token Ġ= ĠEx posure Circuit Breaker Info ( 1 . 0 , ĠInstant . now (). to Epoch Milli (), Ġ 1 , Ġ 2 , Ġnow , Ġ" token ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Exposure Windows With Risk ( is Consider ed R is ky : ĠBoolean , Ġvar arg Ġrisk Values : ĠDouble ): ĠList < Exposure Window With Risk > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrisk Values . map Ġ{ Ġrisk Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEx posure Window With Risk ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Exposure Window (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalculated Risk Ġ= Ġrisk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Calculation Version Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Key Count Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Consider ed R is ky Ġ= Ġis Consider ed R is ky ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Exposure Window (): ĠEx posure Window Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setDate Millis Since Epoch ( 1 2 3 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Report Type ( Report Type . CON FI R MED _ TEST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Inf ect ious ness ( Inf ect ious ness . HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Calibration Confidence ( Calibration Confidence . HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Scan Instances ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScan Instance . Builder (). set Min Att enuation Db ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Seconds Since Last Scan ( 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Typ ical Att enuation Db ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ } Ċ