public static void UseRabbitMqBusEngine(this INybusConfigurator nybus, Action <IRabbitMqConfigurator> configure = null) { nybus.AddServiceConfiguration(svc => svc.AddSingleton <IConfigurationFactory, ConfigurationFactory>()); nybus.AddServiceConfiguration(svc => svc.AddSingleton <IConnectionFactoryProviders, ConnectionFactoryProviders>()); var configurator = new RabbitMqConfigurator(); configurator.RegisterQueueFactoryProvider <StaticQueueFactoryProvider>(); configurator.RegisterQueueFactoryProvider <TemporaryQueueFactoryProvider>(); configure?.Invoke(configurator); configurator.Apply(nybus); nybus.UseBusEngine <RabbitMqBusEngine>(); }
public void RegisterQueueFactoryProvider_adds_provider_with_default_setup(RabbitMqConfigurator sut, TestNybusConfigurator configurator) { sut.RegisterQueueFactoryProvider <TestQueueFactoryProvider>(); sut.Apply(configurator); var services = new ServiceCollection(); configurator.ApplyServiceConfigurations(services); var serviceProvider = services.BuildServiceProvider(); var provider = serviceProvider.GetService <IQueueFactoryProvider>(); Assert.That(provider, Is.InstanceOf <TestQueueFactoryProvider>()); }
public void RegisterQueueFactoryProvider_adds_provider_with_custom_setup(RabbitMqConfigurator sut, TestNybusConfigurator configurator, TestQueueFactoryProvider factoryProvider, Func <IServiceProvider, IQueueFactoryProvider> setup) { Mock.Get(setup).Setup(p => p(It.IsAny <IServiceProvider>())).Returns(factoryProvider); sut.RegisterQueueFactoryProvider <TestQueueFactoryProvider>(setup); sut.Apply(configurator); var services = new ServiceCollection(); configurator.ApplyServiceConfigurations(services); var serviceProvider = services.BuildServiceProvider(); var provider = serviceProvider.GetService <IQueueFactoryProvider>(); Mock.Get(setup).Verify(s => s(It.IsAny <IServiceProvider>()), Times.Once); Assert.That(provider, Is.SameAs(factoryProvider)); }