package Ġcom . bad oo . reak t ive . observable Ċ Ċ import Ġcom . bad oo . reak t ive . test . mock Un caught ExceptionHandler Ċ import Ġcom . bad oo . reak t ive . test . observable . Default Observable Observer Ċ import Ġcom . bad oo . reak t ive . test . observable . Test Observable Ċ import Ġcom . bad oo . reak t ive . test . observable . test Ċ import Ġcom . bad oo . reak t ive . utils . Shared List Ċ import Ġcom . bad oo . reak t ive . utils . atomic . Atomic Boolean Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertSame Ċ Ċ class ĠDo On After Complete Test Ġ: ĊĠĠĠ ĠObservable To Observable Tests Ġby ĠObservable To Observable Tests Impl ({ Ġdo On After Complete Ġ{} Ġ}), ĊĠĠĠ ĠObservable To Observable Forward Tests Ġby ĠObservable To Observable Forward Tests Impl ({ Ġdo On After Complete Ġ{} Ġ}) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġupstream Ġ= ĠTest Observable < Int >() ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcalls _ action _ after _ completion () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall Order Ġ= ĠShared List < String >() ĊĊĠĠĠĠĠĠĠ Ġupstream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On After Complete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Order Ġ+= Ġ" action " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDefault Observable Observer < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Order Ġ+= Ġ" onComplete " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġupstream . onComplete () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" onComplete ", Ġ" action "), Ġcall Order ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ call _ action _ WHEN _ upstream _ emit ted _ value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Called Ġ= ĠAtomic Boolean () ĊĊĠĠĠĠĠĠĠ Ġupstream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On After Complete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Called . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test () ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 0 ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( is Called . value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ call _ action _ WHEN _ upstream _ pro duced _ error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Called Ġ= ĠAtomic Boolean () ĊĊĠĠĠĠĠĠĠ Ġupstream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On After Complete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Called . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test () ĊĊĠĠĠĠĠĠĠ Ġupstream . onError ( Throwable ()) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( is Called . value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcalls _ unc a ught _ exception _ handler _ WHEN _ upstream _ completed _ and _ exception _ in _ lambda () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcaught Exception Ġ= Ġmock Un caught ExceptionHandler () ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠException () ĊĊĠĠĠĠĠĠĠ Ġupstream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On After Complete Ġ{ Ġthrow Ġerror Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test () ĊĊĠĠĠĠĠĠĠ Ġupstream . onComplete () ĊĊĠĠĠĠĠĠĠ ĠassertSame ( error , Ġcaught Exception . value ) ĊĠĠĠ Ġ} Ċ } Ċ