package Ġclear net Ċ Ċ import Ġclear net . help .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠSubscribe On Requests Test Ġ: ĠCore Blocks Test () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcore : ĠCore ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Requests : ĠTest Requests ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġcore Ġ= ĠCore ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio Executor Ġ= ĠIm mediate Executor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworker Ġ= Ġtest Scheduler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblocks Ġ= Ġ* core Blocks . getAll () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtest Requests Ġ= ĠExecutor Wrapper ( core , ĠHeaders Provider Stub , ĠGson Test Serializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Test Requests :: class . java , ĠBatch Test Request Executor (), Ġ 1 , ĠCallback Holder Stub ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubscribe () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsuc cesses Ġ= ĠAtomicInteger () ĊĠĠĠĠĠĠĠ Ġval Ġsubscription Called Ġ= ĠAtomicInteger () ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠRequest Callback Stub < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( response : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuc cesses . increment AndGet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsubscription Ġ= Ġcore . subscribe (" test . bind able Task ", Ġobject Ġ: ĠRequest Callback Stub < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( response : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscription Called . increment AndGet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtest Requests . bind able Task ( 1 , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġforward Scheduler () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsuc cesses . get ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsubscription Called . get ()) ĊĊĠĠĠĠĠĠĠ Ġtest Requests . not Bind able Task ( callback ) ĊĠĠĠĠĠĠĠ Ġforward Scheduler () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsuc cesses . get ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsubscription Called . get ()) ĊĊĠĠĠĠĠĠĠ Ġtest Requests . bind able Task ( 2 , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġforward Scheduler () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsuc cesses . get ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsubscription Called . get ()) ĊĊĠĠĠĠĠĠĠ Ġsubscription . unsubscribe () ĊĊĠĠĠĠĠĠĠ Ġtest Requests . bind able Task ( 3 , Ġcallback ) ĊĠĠĠĠĠĠĠ Ġforward Scheduler () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġsuc cesses . get ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsubscription Called . get ()) ĊĠĠĠ Ġ} Ċ }