package Ġio . github . dl le w el lyn . saf et or un . repository Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . github . dl le w el lyn . saf et or un . off device . Fake Shared Prefs Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġjunit . framework . TestCase Ċ import Ġorg . junit . Test Ċ Ċ class ĠAndroid DeviceId Repository Test Ġ: ĠTestCase () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= Ġmock k < Context >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġget SharedPreferences ( any (), Ġany ()) Ġ} Ġreturns ĠFake Shared Prefs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġthat Ġcalling Ġdevice Ġtwice Ġcomes Ġback Ġwith Ġthe Ġsame ĠID `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠAndroid DeviceId Repository ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertThat ( repository . get OrCreate DeviceId Sync ()). isEqualTo ( repository . get OrCreate DeviceId Sync ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ` test Ġthat Ġcalling Ġdevice Ġtwice Ġcomes Ġback Ġwith Ġthe Ġsame ĠID Ġasync `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠAndroid DeviceId Repository ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġrepository . get OrCreate DeviceId Async Ġ{ Ġfirst String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get OrCreate DeviceId Async Ġ{ Ġsecond String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( first String ). isEqualTo ( second String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ