package Ġcom . k ux u . rx k Ċ Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġjava . util . concurrent . Count DownLatch Ċ Ċ class ĠObservable Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠSubscribe able () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Ġ= ĠObservable < String >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġon Next Result Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Hello ĠRx k , Ġthat Ġis Ġport ing ĠReactive ĠExtensions Ġfor ĠKotlin " ĊĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġobservable . subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġon Next Result Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Completed Ġ= Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġobservable . onNext ( message ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( message , Ġon Next Result ) ĊĊĠĠĠĠĠĠĠ Ġdis posable . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠCan Observer ble OnError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Ġ= ĠObservable < String >() ĊĊĠĠĠĠĠĠĠ Ġvar ĠonError Result : ĠThrowable ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtarget Exception Ġ= ĠNullPointerException () ĊĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġobservable . subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĠonError Result Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Completed Ġ= Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġobservable . onError ( target Exception ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( onError Result , Ġtarget Exception ) ĊĊĠĠĠĠĠĠĠ Ġdis posable . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠCan On Completed able () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Ġ= ĠObservable < String >() ĊĊĠĠĠĠĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġobservable . subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Completed Ġ= Ġ{ Ġl atch . count Down () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġobservable . on Completed () ĊĊĠĠĠĠĠĠĠ Ġl atch . await () ĊĊĠĠĠĠĠĠĠ Ġdis posable . dispose () ĊĠĠĠ Ġ} Ċ }