public void RaiseSafelyDoesntThrowExceptionFromEventHandler() { var eventBus = new EventBus(); var handler = new EvilEventHandler(); eventBus.Register <EventB>(handler.HandleEvent); eventBus.RaiseSafely(new EventB()); }
public void RaiseSafelyProtectsAgainstExceptionsThrownByExceptionHandler() { var eventBus = new EventBus(); var handler = new EvilEventHandler(); var exceptionHandler = new EvilExeptionEventHandler(); eventBus.Register <EventB>(handler.HandleEvent); eventBus.Register <ExceptionEvent>(exceptionHandler.HandleEvent); eventBus.RaiseSafely(new EventB()); // No exceptions thrown. }
public void RegisteredExceptionHandlerCatchesExceptionWhenEventRaisedSafely() { var eventBus = new EventBus(); var handler = new EvilEventHandler(); var exceptionHandler = new ExceptionHandler(); eventBus.Register <EventB>(handler.HandleEvent); eventBus.Register <ExceptionEvent>(exceptionHandler.HandleEvent); eventBus.RaiseSafely(new EventB()); Assert.IsNotNull(exceptionHandler.ExceptionMessages.First(message => message == "Boo!")); }