Example #1
0
        public void CreateConfiguration_uses_selected_provider_to_create_Event_filters([Frozen] IEnumerable <IErrorFilterProvider> errorFilterProviders, NybusHostConfigurationFactory sut)
        {
            var providers         = errorFilterProviders.ToArray();
            var selectedProviders = providers.Take(providers.Length - 1);

            var settings = new Dictionary <string, string>();

            var i = 0;

            foreach (var provider in selectedProviders)
            {
                settings.Add($"EventErrorFilters:{i}:type", provider.ProviderName);
                i++;
            }

            var config = new ConfigurationBuilder().AddInMemoryCollection(settings).Build();

            var options = new NybusHostOptions();

            config.Bind(options);

            var configuration = sut.CreateConfiguration(options);

            Assert.True(selectedProviders.All(p =>
            {
                Mock.Get(p).Verify(o => o.CreateErrorFilter(It.IsAny <IConfigurationSection>()));
                return(true);
            }));
        }
        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);
        }
Example #3
0
        public void CreateConfiguration_ignores_unregistered_providers_when_creating_command_filters(NybusHostConfigurationFactory sut, NybusHostOptions options)
        {
            var configuration = sut.CreateConfiguration(options);

            Assert.That(configuration.CommandErrorFilters, Is.Empty);
        }