public void TestItReturnsMiscGroupWithSpecificDescriptor() { ConfigFileSection section = ConfigFileSectionFactory.Make(descriptor: "foo", dataType: InputDataType.SCT_FIXES); OutputGroup group = OutputGroupFactory.CreateMisc(section); Assert.Equal("misc.SCT_FIXES", group.Key); Assert.Equal("Start misc foo", group.HeaderDescription); }
public void TestItReturnsAirportGroupWithSpecificDescriptor() { ConfigFileSection section = ConfigFileSectionFactory.Make(descriptor: "foo", dataType: InputDataType.SCT_FIXES); OutputGroup group = OutputGroupFactory.CreateAirport(section, "EGLL"); Assert.Equal("airport.SCT_FIXES.EGLL", group.Key); Assert.Equal("Start EGLL foo", group.HeaderDescription); }
public void TestItReturnsEnrouteGroupWithoutSpecificDescriptor() { ConfigFileSection section = ConfigFileSectionFactory.Make(descriptor: null, dataType: InputDataType.SCT_FIXES); OutputGroup group = OutputGroupFactory.CreateEnroute(section); Assert.Equal("enroute.SCT_FIXES", group.Key); Assert.Null(group.HeaderDescription); }
/** * Airports are special as there are many folders to go through for things and in some * cases we might want to exclude certain files from airports. So iterate through * each configuration of airports. */ private void IterateAirportConfig( JToken airportConfig, ConfigInclusionRules config, string configFilePath ) { if (airportConfig.Type != JTokenType.Object) { throw new ConfigFileInvalidException( $"Invalid airport config in {configFilePath} must be an object" ); } foreach (KeyValuePair <string, JToken> configItem in (JObject)airportConfig) { if (configItem.Value.Type != JTokenType.Object) { throw new ConfigFileInvalidException( $"Invalid airport config[{configItem.Key}] in {configFilePath} must be an object" ); } // Get the airport folders string configFileFolder = GetFolderForConfigFile(configFilePath); string[] directories = Directory.GetDirectories(configFileFolder + Path.DirectorySeparatorChar + configItem.Key); // For each airport, iterate the config file sections foreach (string directory in directories) { IterateConfigFileSections( configItem.Value, AirfieldConfigFileSections.ConfigFileSections, x => OutputGroupFactory.CreateAirport(x, Path.GetFileName(directory)), config.AddAirportInclusionRule, directory, "airport" ); } } }