package Ġcom . bad oo . reak t ive . test . base Ċ Ċ import Ġcom . bad oo . reak t ive . utils . print Stack Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertNull Ċ import Ġkotlin . test . assertTrue Ċ import Ġkotlin . test . fail Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assert Error (): ĠT Ġ{ ĊĠĠĠ ĠassertTrue ( isError , Ġ" Source Ġdid Ġnot Ġfail ") ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assert Error ( expected Error : ĠThrowable ): ĠT Ġ{ ĊĠĠĠ Ġval Ġerror Ġ= Ġerror ĊĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfail (" Source Ġdid Ġnot Ġfail ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected Error , Ġerror , Ġ" Source Ġerror Ġdoes Ġnot Ġmatch , Ġthe Ġactual Ġerror Ġis Ġprinted Ġabove ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAssertionError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . print Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assert Error ( predicate : Ġ( Throwable ) Ġ-> ĠBoolean ): ĠT Ġ{ ĊĠĠĠ Ġval Ġerror Ġ= Ġerror ĊĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfail (" Source Ġdid Ġnot Ġfail ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( predicate ( error ), Ġ" Source Ġerror Ġdoes Ġnot Ġmatch Ġthe Ġpredicate , Ġthe Ġactual Ġerror Ġis Ġprinted Ġabove ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAssertionError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . print Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assertNot Error (): ĠT Ġ{ ĊĠĠĠ Ġerror ?. also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . print Stack () ĊĠĠĠĠĠĠĠ Ġfail (" Source Ġfailed , Ġthe Ġactual Ġerror Ġis Ġprinted Ġabove ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assert Sub scribed (): ĠT Ġ{ ĊĠĠĠ ĠassertNotNull ( dis posable , Ġ" Source Ġis Ġnot Ġsubscribed ") ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assertNot Sub scribed (): ĠT Ġ{ ĊĠĠĠ ĠassertNull ( dis posable , Ġ" Source Ġis Ġsubscribed ") ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assert Disposed (): ĠT Ġ{ ĊĠĠĠ ĠassertTrue ( is Disposed , Ġ" Source Ġis Ġnot Ġdisposed ") ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTest Observer > ĠT . assertNot Disposed (): ĠT Ġ{ ĊĠĠĠ ĠassertFalse ( is Disposed , Ġ" Source Ġis Ġdisposed ") ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ