public void ConstructorHappyPath()
        {
            var source = new TestConfigurationSource();

            source.Provider.Set("CustomLogger:Level", "Fatal");

            var configuration = new ConfigurationBuilder()
                                .Add(source)
                                .Build();

            var services = new ServiceCollection();

            services.Configure <LoggerOptions>("MyLogger", configuration.GetSection("CustomLogger"));

            var serviceProvider = services.BuildServiceProvider();

            var logProcessor     = new Mock <ILogProcessor>().Object;
            var name             = "MyLogger";
            var logProviders     = new[] { new Mock <ILogProvider>().Object };
            var contextProviders = new[] { new Mock <IContextProvider>().Object };
            var optionsMonitor   = serviceProvider.GetRequiredService <IOptionsMonitor <LoggerOptions> >();
            var options          = optionsMonitor.Get("MyLogger");
            Action <LoggerOptions> configureOptions = opt => { };

            var reloadingLogger = ReloadingLogger.New(logProcessor, name, logProviders, contextProviders, optionsMonitor, options, configureOptions);

            string        actualName         = reloadingLogger.Name;
            ILogProcessor actualLogProcessor = reloadingLogger._logProcessor;
            IReadOnlyCollection <ILogProvider>     actualLogProviders     = reloadingLogger._logProviders;
            IReadOnlyCollection <IContextProvider> actualContextProviders = reloadingLogger._contextProviders;
            Action <LoggerOptions> actualConfigureOptions = reloadingLogger._configureOptions;

            actualName.Should().BeSameAs(name);
            actualLogProcessor.Should().BeSameAs(logProcessor);
            actualLogProviders.Should().BeSameAs(logProviders);
            actualContextProviders.Should().BeSameAs(contextProviders);
            actualConfigureOptions.Should().BeSameAs(configureOptions);

            Logger logger = reloadingLogger._logger;

            logger.Name.Should().Be(name);
            logger.Level.Should().Be(LogLevel.Fatal);
            logger.IsDisabled.Should().BeFalse();
            logger.LogProviders.Should().BeSameAs(logProviders);
            logger.ContextProviders.Should().BeSameAs(contextProviders);
            logger.LogProcessor.Should().BeSameAs(logProcessor);
        }