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 void Raising_multiple_events_shall_be_handled_when_registered_async()
        {
            var goodHandler = new Mock <IDomainEventHandler <GoodEventMeta> >();

            var eventRaiser = new DomainEventRaiserSutBuilder()
                              .UseTestDomainEventHandlerProvider(a => a.Register(goodHandler.Object))
                              .Build();

            eventRaiser.RaiseAll(new IDomainEvent <GoodEventMeta>[] { _goodEvent1, _goodEvent2, _goodEvent3 });

            goodHandler.Verify(m => m.Handle(
                                   It.IsAny <IDomainEvent <GoodEventMeta> >()), Times.Exactly(3));
        }
Пример #3
0
        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);
        }