public void AddServiceConfiguration_invokes_configuration_delegate(NybusConfigurator sut, IServiceCollection services, Action <IServiceCollection> configurationDelegate) { sut.AddServiceConfiguration(configurationDelegate); sut.ConfigureServices(services); Mock.Get(configurationDelegate).Verify(p => p(services), Times.Once); }
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)); }
public void UseConfiguration_uses_specified_section(NybusConfigurator sut, IConfigurationSection configuration, string sectionName) { sut.UseConfiguration(configuration, sectionName); Mock.Get(configuration).Verify(p => p.GetSection(sectionName), Times.Once); Assert.That(sut.Configuration, Is.SameAs(configuration.GetSection(sectionName))); }
public void AddSubscription_configures(NybusConfigurator sut, ISubscriptionBuilder subscriptionBuilder, Action <ISubscriptionBuilder> subscriptionDelegate) { sut.AddSubscription(subscriptionDelegate); sut.ConfigureBuilder(subscriptionBuilder); Mock.Get(subscriptionDelegate).Verify(p => p(subscriptionBuilder), Times.Once); }
public void AddServiceConfiguration_configures_given_service(NybusConfigurator sut, Type serviceType, IServiceCollection services) { sut.AddServiceConfiguration(svc => svc.AddSingleton(serviceType)); sut.ConfigureServices(services); Mock.Get(services).Verify(p => p.Add(It.Is <ServiceDescriptor>(sd => sd.ServiceType == serviceType))); }
public void Bus_can_be_built(ServiceCollection services, NybusConfigurator nybusConfigurator, SubscriptionsConfigurator subscriptionsConfigurator) { services.AddLogging(); services.AddNybusLegacy(nybusConfigurator, subscriptionsConfigurator); var serviceProvider = services.BuildServiceProvider(); var bus = serviceProvider.GetRequiredService <IBus>(); Assert.That(bus, Is.Not.Null); }
public void UseConfiguration_uses_default_sectionName(NybusConfigurator sut, IConfigurationSection configuration) { sut.UseConfiguration(configuration); Mock.Get(configuration).Verify(p => p.GetSection("Nybus"), Times.Once); }
public void UseConfiguration_requires_sectionName(NybusConfigurator sut, IConfigurationSection configuration) { Assert.Throws <ArgumentNullException>(() => sut.UseConfiguration(configuration, null)); }
public void UseConfiguration_requires_configuration(NybusConfigurator sut, string sectionName) { Assert.Throws <ArgumentNullException>(() => sut.UseConfiguration(null, sectionName)); }
public void AddSubscription_requires_non_null_subscription_delegate(NybusConfigurator sut) { Assert.Throws <ArgumentNullException>(() => sut.AddSubscription(null)); }
public static IServiceCollection AddNybus(this IServiceCollection services, Action <INybusConfigurator> configure) { var configurator = new NybusConfigurator(); configurator.RegisterErrorFilterProvider <RetryErrorFilterProvider>(); configurator.RegisterErrorFilterProvider <DiscardErrorFilterProvider>(); services.AddSingleton <DiscardErrorFilter>(); configure(configurator); services.AddSingleton(sp => { var loggerFactory = sp.GetRequiredService <ILoggerFactory>(); var builder = new NybusHostBuilder(loggerFactory); return(builder); }); services.AddSingleton <INybusHostConfigurationFactory, NybusHostConfigurationFactory>(); services.AddSingleton(sp => { var factory = sp.GetRequiredService <INybusHostConfigurationFactory>(); var options = sp.GetRequiredService <NybusHostOptions>(); var configuration = factory.CreateConfiguration(options); configurator.CustomizeConfiguration(sp, configuration); return(configuration); }); services.AddSingleton(sp => { var options = new NybusHostOptions(); configurator.Configuration?.Bind(options); return(options); }); services.AddSingleton <IMessageDescriptorStore, MessageDescriptorStore>(); configurator.ConfigureServices(services); services.AddSingleton(sp => { var engine = sp.GetRequiredService <IBusEngine>(); var builder = sp.GetRequiredService <NybusHostBuilder>(); var configuration = sp.GetRequiredService <NybusConfiguration>(); configurator.ConfigureBuilder(builder); return(builder.BuildHost(engine, sp, configuration)); }); services.AddSingleton <IBusHost>(sp => sp.GetRequiredService <NybusHost>()); services.AddSingleton <IBus>(sp => sp.GetRequiredService <NybusHost>()); return(services); }
public static IServiceCollection AddNybusLegacy(this IServiceCollection services, NybusConfigurator nybusConfigurator = null, SubscriptionsConfigurator subscriptionsConfigurator = null) { services.AddHostedService <NybusLegacyHostedService>(); services.AddSingleton <IContainer, ServiceProviderContainer>(); services.AddSingleton(Clock.Default); services.AddSingleton <ILoggerFactory, NybusLoggerFactoryAdapter>(); services.AddSingleton <NybusOptions>(); services.AddSingleton <IBusEngine, InMemoryBusEngine>(); services.AddSingleton <IBusBuilder>(sp => { var container = sp.GetRequiredService <IContainer>(); var engine = sp.GetRequiredService <IBusEngine>(); var loggerFactory = sp.GetRequiredService <ILoggerFactory>(); var options = new NybusOptions { Container = container, LoggerFactory = loggerFactory }; nybusConfigurator?.Invoke(options); var builder = new NybusBusBuilder(engine, options); subscriptionsConfigurator?.Invoke(builder); return(builder); }); services.AddSingleton(sp => { var builder = sp.GetRequiredService <IBusBuilder>(); return(builder.Build()); }); return(services); }
public void SubscriptionsConfigurator_delegate_is_invoked(ServiceCollection services, NybusConfigurator nybusConfigurator, SubscriptionsConfigurator subscriptionsConfigurator) { services.AddLogging(); services.AddNybusLegacy(nybusConfigurator, subscriptionsConfigurator); var serviceProvider = services.BuildServiceProvider(); var bus = serviceProvider.GetRequiredService <IBus>(); Assume.That(bus, Is.Not.Null); Mock.Get(subscriptionsConfigurator).Verify(p => p(It.IsAny <IBusBuilder>())); }