mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 12:10:50 +08:00 
			
		
		
		
	Added overload of the IConfigurationBuilder.AddOcelot extension-method that accepts a specific folder (#476)
This commit is contained in:
		
				
					committed by
					
						
						Tom Pallister
					
				
			
			
				
	
			
			
			
						parent
						
							5c940acf0e
						
					
				
				
					commit
					12ef3bc00f
				
			@@ -32,14 +32,29 @@
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_merge_files()
 | 
			
		||||
        {
 | 
			
		||||
            this.Given(_ => GivenMultipleConfigurationFiles())
 | 
			
		||||
            this.Given(_ => GivenMultipleConfigurationFiles(""))
 | 
			
		||||
                .When(_ => WhenIAddOcelotConfiguration())
 | 
			
		||||
                .Then(_ => ThenTheConfigsAreMerged())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void GivenMultipleConfigurationFiles()
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_merge_files_in_specific_folder()
 | 
			
		||||
        {
 | 
			
		||||
            string configFolder = "ConfigFiles";
 | 
			
		||||
            this.Given(_ => GivenMultipleConfigurationFiles(configFolder))
 | 
			
		||||
                .When(_ => WhenIAddOcelotConfigurationWithSpecificFolder(configFolder))
 | 
			
		||||
                .Then(_ => ThenTheConfigsAreMerged())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void GivenMultipleConfigurationFiles(string folder)
 | 
			
		||||
        {
 | 
			
		||||
            if (!string.IsNullOrEmpty(folder))
 | 
			
		||||
            {
 | 
			
		||||
                Directory.CreateDirectory(folder);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            _globalConfig = new FileConfiguration
 | 
			
		||||
            {
 | 
			
		||||
                GlobalConfiguration = new FileGlobalConfiguration
 | 
			
		||||
@@ -159,10 +174,15 @@
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            File.WriteAllText("ocelot.global.json", JsonConvert.SerializeObject(_globalConfig));
 | 
			
		||||
            File.WriteAllText("ocelot.reRoutesA.json", JsonConvert.SerializeObject(_reRouteA));
 | 
			
		||||
            File.WriteAllText("ocelot.reRoutesB.json", JsonConvert.SerializeObject(_reRouteB));
 | 
			
		||||
            File.WriteAllText("ocelot.aggregates.json", JsonConvert.SerializeObject(_aggregate));
 | 
			
		||||
            string globalFilename = Path.Combine(folder, "ocelot.global.json");
 | 
			
		||||
            string reroutesAFilename = Path.Combine(folder, "ocelot.reRoutesA.json");
 | 
			
		||||
            string reroutesBFilename = Path.Combine(folder, "ocelot.reRoutesB.json");
 | 
			
		||||
            string aggregatesFilename = Path.Combine(folder, "ocelot.aggregates.json");
 | 
			
		||||
 | 
			
		||||
            File.WriteAllText(globalFilename, JsonConvert.SerializeObject(_globalConfig));
 | 
			
		||||
            File.WriteAllText(reroutesAFilename, JsonConvert.SerializeObject(_reRouteA));
 | 
			
		||||
            File.WriteAllText(reroutesBFilename, JsonConvert.SerializeObject(_reRouteB));
 | 
			
		||||
            File.WriteAllText(aggregatesFilename, JsonConvert.SerializeObject(_aggregate));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void WhenIAddOcelotConfiguration()
 | 
			
		||||
@@ -172,6 +192,13 @@
 | 
			
		||||
            _configRoot = builder.Build();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void WhenIAddOcelotConfigurationWithSpecificFolder(string folder)
 | 
			
		||||
        {
 | 
			
		||||
            IConfigurationBuilder builder = new ConfigurationBuilder();
 | 
			
		||||
            builder.AddOcelot(folder);
 | 
			
		||||
            _configRoot = builder.Build();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheConfigsAreMerged()
 | 
			
		||||
        {
 | 
			
		||||
            var fc = (FileConfiguration)_configRoot.Get(typeof(FileConfiguration));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user