public async void Raising_a_single_event_shall_be_handled_when_registered_async() { var goodHandler = new Mock <IDomainEventHandler <GoodEventMeta> >(); var eventRaiser = new DomainEventRaiserSutBuilder() .UseTestDomainEventHandlerProvider(a => a.Register(goodHandler.Object)) .Build(); await eventRaiser.RaiseAsync(_goodEvent); goodHandler.Verify(m => m.Handle( It.IsAny <IDomainEvent <GoodEventMeta> >()), Times.Once); }
public async void Event_dispatch_errors_should_be_handled_async() { 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(); await eventRaiser.RaiseAsync(_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); }