示例#1
0
 public NybusHost(IBusEngine busEngine, INybusConfiguration configuration, IServiceProvider serviceProvider, ILogger <NybusHost> logger)
 {
     _logger          = logger ?? throw new ArgumentNullException(nameof(logger));
     _engine          = busEngine ?? throw new ArgumentNullException(nameof(busEngine));
     _configuration   = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
示例#2
0
 public void CustomizeConfiguration(IServiceProvider serviceProvider, INybusConfiguration configuration)
 {
     foreach (var customization in _configurationCustomizations)
     {
         customization(serviceProvider, configuration);
     }
 }
示例#3
0
        public void Configure_(NybusConfigurator sut, IServiceProvider serviceProvider, INybusConfiguration configuration, Action <INybusConfiguration> configurationDelegate)
        {
            sut.Configure(configurationDelegate);

            sut.CustomizeConfiguration(serviceProvider, configuration);

            Mock.Get(configurationDelegate).Verify(p => p(configuration));
        }
示例#4
0
        public NybusHost BuildHost(IBusEngine engine, IServiceProvider serviceProvider, INybusConfiguration configuration)
        {
            var host = new NybusHost(engine, configuration, serviceProvider, _loggerFactory.CreateLogger <NybusHost>());

            foreach (var subscription in _subscriptions)
            {
                subscription(host);
            }

            return(host);
        }
示例#5
0
        public async Task ExecuteEventHandlerAsync_executes_error_filter_on_fail([Frozen] IServiceProvider serviceProvider, [Frozen] IBusEngine engine, [Frozen] INybusConfiguration configuration, NybusHost sut, IDispatcher dispatcher, EventMessage <FirstTestEvent> eventMessage, IServiceScopeFactory scopeFactory, IEventHandler <FirstTestEvent> handler, Exception error, IErrorFilter errorFilter)
        {
            configuration.EventErrorFilters = new[] { errorFilter };

            var handlerType = handler.GetType();

            var context = new NybusEventContext <FirstTestEvent>(eventMessage);

            Mock.Get(serviceProvider).Setup(p => p.GetService(typeof(IServiceScopeFactory))).Returns(scopeFactory);

            Mock.Get(serviceProvider).Setup(p => p.GetService(handlerType)).Returns(handler);

            Mock.Get(handler).Setup(p => p.HandleAsync(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <FirstTestEvent> >())).Throws(error);

            await sut.ExecuteEventHandlerAsync(dispatcher, context, handlerType);

            Mock.Get(errorFilter).Verify(p => p.HandleErrorAsync(context, error, It.IsAny <EventErrorDelegate <FirstTestEvent> >()));
        }
示例#6
0
 public void ServiceProvider_is_required(IBusEngine engine, INybusConfiguration configuration, ILogger <NybusHost> logger)
 {
     Assert.Throws <ArgumentNullException>(() => new NybusHost(engine, configuration, null, logger));
 }
示例#7
0
 public void BusEngine_is_required(INybusConfiguration configuration, IServiceProvider serviceProvider, ILogger <NybusHost> logger)
 {
     Assert.Throws <ArgumentNullException>(() => new NybusHost(null, configuration, serviceProvider, logger));
 }