Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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"
                        );
                }
            }
        }