import Ġme . k brew ster . event bus . Subscribe Ċ import Ġme . k brew ster . event bus . event bus Ċ import Ġme . k brew ster . event bus . inv ok ers . L MF Invoker Ċ import Ġorg . junit . jupiter . api .* Ċ Ċ class ĠMessage Received Event ( val Ġmessage : ĠString ) Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ @ TestMethod Order ( Method Order er . Order Annotation :: class ) Ċ class ĠEvent Bus Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġevent Bus Ġ= Ġevent bus Ġ{ ĊĠĠĠĠĠĠĠ Ġinvok er Ġ{ ĠL MF Invoker () Ġ} ĊĠĠĠĠĠĠĠ Ġexception Handler Ġ{ Ġe , Ġ_ Ġ-> Ġprintln (" Error Ġoccurred Ġin Ġmethod : Ġ${ e . message }") Ġ Ġ} ĊĠĠĠĠĠĠĠ Ġthread Safety Ġ{ Ġfalse Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 0 ) ĊĠĠĠ Ġfun Ġ` sub scri bing Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus . register ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġ` subscribed Ġmethod `( event : ĠMessage Received Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġsomething ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 1 ) ĊĠĠĠ Ġfun Ġ` post ing Ġevent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrepeat ( 1 0 _ 0 0 0 _ 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . post Ġ{ ĠMessage Received Event (" Hello Ġworld ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġfun Ġ` re moving Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus . unregister ( this ) ĊĠĠĠ Ġ} Ċ }