package Ġuk . n hs . n hs x . covid 1 9 . android . app . ex posure . en counter Ċ Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġjava . security . Secure Random Ċ Ċ class ĠAndroid Random Non R is ky Exposure Windows Limiter Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsecure Random Ġ= Ġmock k < Secure Random >() ĊĊĠĠĠ Ġval Ġtest Subject Ġ= ĠAndroid Random Non R is ky Exposure Windows Limiter ( secure Random ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` allow Ġep ide mio logy Ġevents Ġwhen Ġrandom Ġvalue Ġis Ġbelow Ġlimit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsecure Random . nextInt ( 1 0 0 0 ) Ġ} Ġreturns Ġ 2 4 ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . is Allowed () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` dis allow Ġep ide mio logy Ġevents Ġwhen Ġrandom Ġvalue Ġequals Ġlimit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsecure Random . nextInt ( 1 0 0 0 ) Ġ} Ġreturns Ġ 2 5 ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . is Allowed () ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` dis allow Ġep ide mio logy Ġevents Ġwhen Ġrandom Ġvalue Ġis Ġabove Ġlimit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsecure Random . nextInt ( 1 0 0 0 ) Ġ} Ġreturns Ġ 2 6 ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Subject . is Allowed () ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( result ) ĊĠĠĠ Ġ} Ċ } Ċ