public void Raising_a_single_event_shall_be_handled_when_registered() { var goodHandler = new Mock <IDomainEventHandler <GoodEventMeta> >(); var eventRaiser = new DomainEventRaiserSutBuilder() .UseTestDomainEventHandlerProvider(a => a.Register(goodHandler.Object)) .Build(); eventRaiser.Raise(_goodEvent); goodHandler.Verify(m => m.Handle( It.IsAny <IDomainEvent <GoodEventMeta> >()), Times.Once); }
public void Event_dispatch_errors_should_be_handled() { var errorHandler = new Mock <IDomainEventDispatchErrorHandler>(); var badHandler = new Mock <IDomainEventHandler <BadEventMeta> >(); badHandler.Setup(m => m.Handle( It.IsAny <IDomainEvent <BadEventMeta> >())) .Throws <InvalidOperationException>(); var eventRaiser = new DomainEventRaiserSutBuilder() .UseTestDomainEventHandlerProvider(builder => builder.Register(badHandler.Object)) .WithDomainEventDispatchErrorHandler(errorHandler.Object) .Build(); eventRaiser.Raise(_badEvent); errorHandler.Verify(m => m.HandleError( It.Is <IDomainEventHandler <BadEventMeta> >(h => h == badHandler.Object), It.IsAny <InvalidOperationException>(), It.Is <IDomainEvent <BadEventMeta> >(e => e == _badEvent))); badHandler.Verify(m => m.Handle( It.IsAny <IDomainEvent <BadEventMeta> >()), Times.Once); }