Esempio n. 1
0
        public async Task Can_combine_domain_event_with_class_events()
        {
            // Arrange
            var eventsManager = new DomainEventsManager();

            eventsManager.Register(new Ns03_DomainTestEventHandler());

            pipelinesService.PipelineContainer.AddEventPipeline()
            .AddMiddleware(new Events.PipelineMiddlewares.DomainEventLocatorMiddleware(eventsManager))
            .AddMiddleware(new Events.PipelineMiddlewares.EventHandlerLocatorMiddleware(
                               typeof(EventsTests).GetTypeInfo().Assembly))
            .AddMiddleware(new Events.PipelineMiddlewares.EventHandlerResolverMiddleware())
            .AddMiddleware(new Events.PipelineMiddlewares.EventHandlerExecutorMiddleware
            {
                UseParametersResolve = true
            });

            // Act
            await pipelinesService.RaiseEventAsync(new Ns02_DomainTestEvent());

            await pipelinesService.RaiseEventAsync(new Ns03_Event1());

            await pipelinesService.RaiseEventAsync(new Ns03_Event2());

            await pipelinesService.RaiseEventAsync(new Ns03_Event3());

            // Assert
            Assert.Equal(4, Ns03_EventHandler.CallCount);
        }
Esempio n. 2
0
        public void Domain_events_can_be_integrated_to_events_pipeline()
        {
            // Arrange
            var eventsManager = new DomainEventsManager();

            eventsManager.Register(new Ns02_DomainTestEventHandler());
            object Resolver(Type type)
            {
                if (type == typeof(IDomainEventsManager))
                {
                    return(eventsManager);
                }
                return(null);
            }

            pipelinesService.ServiceProvider = new FuncServiceProvider(Resolver);
            pipelinesService.PipelineContainer.AddEventPipeline()
            .AddMiddleware(new Events.PipelineMiddlewares.DomainEventLocatorMiddleware(eventsManager))
            .AddMiddleware(new Events.PipelineMiddlewares.EventHandlerResolverMiddleware())
            .AddMiddleware(new Events.PipelineMiddlewares.EventHandlerExecutorMiddleware
            {
                UseParametersResolve = true
            });
            var ev = new Ns02_DomainTestEvent();

            // Act
            pipelinesService.RaiseEvent(ev);

            // Assert
            Assert.Equal(42, ev.Param);
        }