package Ġcom . lyft . dom ic . android . rendering Ċ Ċ import Ġandroid . view . Ch oreo grapher Ċ import Ġcom . n ha ar man . mockito _ kotlin . any Ċ import Ġcom . n ha ar man . mockito _ kotlin . mock Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ Ċ class ĠTest Ch oreo grapher Ġ{ ĊĊĠĠĠ Ġ// ĠCh oreo grapher Ġis Ġa Ġfinal Ġclass , Ġwe Ġcan 't Ġimplement Ġit Ġas Ġinterface Ġdirectly . ĊĠĠĠ Ġval Ġch oreo grapher : ĠCh oreo grapher Ġ= Ġmock () ĊĊĠĠĠ Ġprivate Ġval Ġcurrent Frame Callbacks Ġ= Ġmutable Set Of < Ch oreo grapher . Frame Callback >() ĊĠĠĠ Ġprivate Ġvar Ġframe Time Nan os Ġ= Ġ 0 L ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( ch oreo grapher . post Frame Callback ( any ())). then Ġ{ Ġinvocation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Frame Callbacks Ġ+= Ġinvocation . arguments . first () Ġas ĠCh oreo grapher . Frame Callback ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcallbacks Count (): ĠInt Ġ= Ġcurrent Frame Callbacks . size ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSim ulates Ġcall Ġfrom ĠAndroid ĠFramework , Ġcallbacks Ġare Ġdisposed Ġto Ġm imic ĠFramework . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsimulate Callbacks Call () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcallbacks Copy Ġ= ĠHashSet < Ch oreo grapher . Frame Callback >( current Frame Callbacks ) ĊĠĠĠĠĠĠĠ Ġcurrent Frame Callbacks . clear () ĊĠĠĠĠĠĠĠ Ġcallbacks Copy . forEach Ġ{ Ġit . do Frame ( frame Time Nan os ++) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ