package Ġcom . ts are v . fi ot cher . internals . flow Ċ Ċ import Ġcom . ts are v . fi ot cher . d flt . flows . Common Listener Ċ import Ġcom . ts are v . fi ot cher . internal . Event With Exception Ċ import Ġcom . ts are v . fi ot cher . internal . as Success Ċ import Ġcom . ts are v . fi ot cher . util .* Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . util . concurrent . Submission Publisher Ċ Ċ /** Ċ Ġ* ĠTesting Ġ[ Common Listener ]. Ċ Ġ*/ Ċ class ĠCommon Listener Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtest Sync Ġ= ĠSync Test Events () ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġ` clear Ġtest Ġexec utors `() Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Executor Registry . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` send Ġtwo Ġevents `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠPrepare Ġ--- ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠCommon Listener < String > Ġ{ Ġtest Sync . send Event ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠSubmission Publisher < Event With Exception < String >>( caller Thread Test Executor , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġpublisher . subscribe ( listener ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠTest Ġ--- ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" one ". as Success ()) ĊĠĠĠĠĠĠĠ Ġtest Sync . assert Event (" one ") ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" two ". as Success ()) ĊĠĠĠĠĠĠĠ Ġtest Sync . assert Event (" two ") ĊĠĠĠĠĠĠĠ Ġtest Sync . assert No Event () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stop Ġafter Ġone Ġsubmit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠPrepare Ġ--- ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠCommon Listener < String > Ġ{ Ġtest Sync . send Event ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠSubmission Publisher < Event With Exception < String >>( caller Thread Test Executor , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġpublisher . subscribe ( listener ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠTest Ġ--- ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" one ". as Success ()) ĊĠĠĠĠĠĠĠ Ġlistener . stop () ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" two ". as Success ()) ĊĠĠĠĠĠĠĠ Ġtest Sync . assert Event (" one ") ĊĠĠĠĠĠĠĠ Ġtest Sync . assert No Event () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stop Ġbefore Ġsubmit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠPrepare Ġ--- ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠCommon Listener < String > Ġ{ Ġtest Sync . send Event ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠSubmission Publisher < Event With Exception < String >>( caller Thread Test Executor , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġpublisher . subscribe ( listener ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠTest Ġ--- ĊĠĠĠĠĠĠĠ Ġlistener . stop () ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" one ". as Success ()) ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" two ". as Success ()) ĊĠĠĠĠĠĠĠ Ġtest Sync . assert No Event () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stop Ġbefore Ġsubscribe `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠPrepare Ġ--- ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠCommon Listener < String >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Errors Ġ= Ġ{ Ġtest Sync . send Event ( it ); Ġnull Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠSubmission Publisher < Event With Exception < String >>( caller Thread Test Executor , Ġ 1 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ--- ĠTest Ġ--- ĊĠĠĠĠĠĠĠ Ġlistener . stop () ĊĠĠĠĠĠĠĠ Ġpublisher . subscribe ( listener ) ĊĠĠĠĠĠĠĠ Ġpublisher . submit (" one ". as Success ()) ĊĠĠĠĠĠĠĠ Ġtest Sync . assert No Event () ĊĠĠĠ Ġ} Ċ Ċ }