public void ReadsConfigurationFromTwoSources()
        {
            var firstProvider = new MemoryConfigurationProvider(new MemoryConfigurationSource())
            {
                { "test", "test" },
            };

            var secondProvider = new MemoryConfigurationProvider(new MemoryConfigurationSource())
            {
                { "test2", "2" },
                { "Logging:LogLevel:Microsoft.Hosting.Lifetime", "2" },
            };

            using var configurationRoot = new ConfigurationRoot(new List <IConfigurationProvider>()
            {
                firstProvider,
                secondProvider,
            });

            var sut    = new EnvironmentProvider(configurationRoot, null);
            var result = sut.ReadConfiguration();

            result.Should().NotBeNull();
            result.Should().HaveCount(3);  // 3 because there is the default PID Provider of Net Core Admin
            var firstResult = result.First();
            var lastResult  = result.ElementAt(1);

            firstResult.Name.Should().Be("MemoryConfigurationProvider - 0");
            lastResult.Name.Should().Be("MemoryConfigurationProvider - 1");
        }
        public void ReadsConfigurationFromIConfiguration()
        {
            var provider = new MemoryConfigurationProvider(new MemoryConfigurationSource())
            {
                { "test2", "2" },
                { "Logging:LogLevel:Microsoft.Hosting.Lifetime", "3" },
            };

            using var configurationRoot = new ConfigurationRoot(new List <IConfigurationProvider>()
            {
                provider,
            });
            var sut    = new EnvironmentProvider(configurationRoot, null);
            var result = sut.ReadConfiguration();

            result.Should().NotBeNull();
            result.Should().HaveCount(2); // 2 because there is the default PID Provider of Net Core Admin
            var prov = result.First();

            prov.Name.Should().Be("MemoryConfigurationProvider - 0");
            prov.Properties.Should().HaveCount(2);
            prov.Properties.Keys.Should().Contain("test2");
            prov.Properties.Values.Should().ContainEquivalentOf(new PropertyValue("2"));

            prov.Properties.Keys.Should().Contain("Logging:LogLevel:Microsoft.Hosting.Lifetime");
            prov.Properties.Values.Should().ContainEquivalentOf(new PropertyValue("3"));
        }