コード例 #1
0
        /// <summary>
        /// Sets the hydraulic location configuration settings.
        /// </summary>
        /// <param name="hydraulicLocationConfigurationSettings">The hydraulic location configuration settings to set on.</param>
        /// <param name="readHydraulicLocationConfigurationDatabaseSettings">The read settings to set.</param>
        /// <param name="usePreprocessorClosure">Indicator whether to use the preprocessor closure.</param>
        /// <param name="hlcdFilePath">The hlcd file path.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="hydraulicLocationConfigurationSettings"/>
        /// or <paramref name="hlcdFilePath"/> is <c>null</c>.</exception>
        public static void SetHydraulicLocationConfigurationSettings(HydraulicLocationConfigurationSettings hydraulicLocationConfigurationSettings,
                                                                     ReadHydraulicLocationConfigurationDatabaseSettings readHydraulicLocationConfigurationDatabaseSettings,
                                                                     bool usePreprocessorClosure,
                                                                     string hlcdFilePath)
        {
            if (hydraulicLocationConfigurationSettings == null)
            {
                throw new ArgumentNullException(nameof(hydraulicLocationConfigurationSettings));
            }

            if (hlcdFilePath == null)
            {
                throw new ArgumentNullException(nameof(hlcdFilePath));
            }

            if (readHydraulicLocationConfigurationDatabaseSettings != null)
            {
                hydraulicLocationConfigurationSettings.SetValues(
                    hlcdFilePath,
                    readHydraulicLocationConfigurationDatabaseSettings.ScenarioName,
                    readHydraulicLocationConfigurationDatabaseSettings.Year,
                    readHydraulicLocationConfigurationDatabaseSettings.Scope,
                    usePreprocessorClosure,
                    readHydraulicLocationConfigurationDatabaseSettings.SeaLevel,
                    readHydraulicLocationConfigurationDatabaseSettings.RiverDischarge,
                    readHydraulicLocationConfigurationDatabaseSettings.LakeLevel,
                    readHydraulicLocationConfigurationDatabaseSettings.WindDirection,
                    readHydraulicLocationConfigurationDatabaseSettings.WindSpeed,
                    readHydraulicLocationConfigurationDatabaseSettings.Comment);
            }
            else
            {
                log.Warn(Resources.HydraulicLocationConfigurationSettingsUpdateHelper_ReadHydraulicLocationConfigurationDatabaseSettings_No_ScenarioInformation_entries_present);

                hydraulicLocationConfigurationSettings.SetValues(
                    hlcdFilePath,
                    HydraulicLocationConfigurationSettingsConstants.MandatoryConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.YearDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.MandatoryConfigurationPropertyDefaultValue,
                    usePreprocessorClosure,
                    HydraulicLocationConfigurationSettingsConstants.OptionalConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.OptionalConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.OptionalConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.OptionalConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.OptionalConfigurationPropertyDefaultValue,
                    HydraulicLocationConfigurationSettingsConstants.AdditionalInformationConfigurationPropertyValue);
            }
        }
コード例 #2
0
        public void SetValues_OptionalArgumentsNull_SetsExpectedValues()
        {
            // Setup
            var          random                 = new Random(21);
            const string filePath               = "FilePath";
            const string scenarioName           = "ScenarioName";
            int          year                   = random.Next();
            const string scope                  = "Scope";
            bool         usePreprocessorClosure = random.NextBoolean();

            var settings = new HydraulicLocationConfigurationSettings();

            // Call
            settings.SetValues(filePath, scenarioName, year, scope,
                               usePreprocessorClosure,
                               null, null, null, null, null, null);

            // Assert
            Assert.AreEqual(filePath, settings.FilePath);
            Assert.AreEqual(scenarioName, settings.ScenarioName);
            Assert.AreEqual(year, settings.Year);
            Assert.AreEqual(scope, settings.Scope);
            Assert.AreEqual(usePreprocessorClosure, settings.UsePreprocessorClosure);

            Assert.IsNull(settings.SeaLevel);
            Assert.IsNull(settings.RiverDischarge);
            Assert.IsNull(settings.LakeLevel);
            Assert.IsNull(settings.WindDirection);
            Assert.IsNull(settings.WindSpeed);
            Assert.IsNull(settings.Comment);
        }
コード例 #3
0
        public void SetValues_ScopeNull_ThrowsArgumentNullException()
        {
            // Setup
            var          random         = new Random(21);
            const string filePath       = "FilePath";
            const string scenarioName   = "ScenarioName";
            int          year           = random.Next();
            const string seaLevel       = "SeaLevel";
            const string riverDischarge = "RiverDischarge";
            const string lakeLevel      = "LakeLevel";
            const string windDirection  = "WindDirection";
            const string windSpeed      = "WindSpeed";
            const string comment        = "Comment";

            var settings = new HydraulicLocationConfigurationSettings();

            // Call
            TestDelegate call = () => settings.SetValues(filePath, scenarioName, year, null, false,
                                                         seaLevel, riverDischarge, lakeLevel,
                                                         windDirection, windSpeed, comment);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("scope", exception.ParamName);
        }
コード例 #4
0
        public void SetValues_InvalidFilePathNull_ThrowsArgumentException(string invalidFilePath)
        {
            // Setup
            var          random         = new Random(21);
            const string scenarioName   = "FilePath";
            int          year           = random.Next();
            const string scope          = "Scope";
            const string seaLevel       = "SeaLevel";
            const string riverDischarge = "RiverDischarge";
            const string lakeLevel      = "LakeLevel";
            const string windDirection  = "WindDirection";
            const string windSpeed      = "WindSpeed";
            const string comment        = "Comment";

            var settings = new HydraulicLocationConfigurationSettings();

            // Call
            TestDelegate call = () => settings.SetValues(null, scenarioName, year, scope, false,
                                                         seaLevel, riverDischarge, lakeLevel,
                                                         windDirection, windSpeed, comment);

            // Assert
            const string expectedMessage = "'filePath' is null, empty or consists of whitespace.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>(call, expectedMessage);
        }
コード例 #5
0
        private static void SetHydraulicLocationConfigurationValues(HydraulicLocationConfigurationSettings settings,
                                                                    string hlcdFilePath = "filePath")
        {
            const string scenarioName           = "ScenarioName";
            const int    year                   = 2017;
            const string scope                  = "Scope";
            const bool   usePreprocessorClosure = false;
            const string seaLevel               = "SeaLevel";
            const string riverDischarge         = "RiverDischarge";
            const string lakeLevel              = "LakeLevel";
            const string windDirection          = "WindDirection";
            const string windSpeed              = "WindSpeed";
            const string comment                = "Comment";

            settings.SetValues(hlcdFilePath, scenarioName, year, scope,
                               usePreprocessorClosure, seaLevel, riverDischarge,
                               lakeLevel, windDirection, windSpeed, comment);
        }
コード例 #6
0
        public void SetValues_WithArguments_SetsExpectedValues()
        {
            // Setup
            var          random                 = new Random(21);
            const string filePath               = "FilePath";
            const string scenarioName           = "ScenarioName";
            int          year                   = random.Next();
            const string scope                  = "Scope";
            bool         usePreprocessorClosure = random.NextBoolean();
            const string seaLevel               = "SeaLevel";
            const string riverDischarge         = "RiverDischarge";
            const string lakeLevel              = "LakeLevel";
            const string windDirection          = "WindDirection";
            const string windSpeed              = "WindSpeed";
            const string comment                = "Comment";

            var settings = new HydraulicLocationConfigurationSettings();

            // Call
            settings.SetValues(filePath, scenarioName, year, scope,
                               usePreprocessorClosure, seaLevel, riverDischarge,
                               lakeLevel, windDirection, windSpeed, comment);

            // Assert
            Assert.AreEqual(filePath, settings.FilePath);
            Assert.AreEqual(scenarioName, settings.ScenarioName);
            Assert.AreEqual(year, settings.Year);
            Assert.AreEqual(scope, settings.Scope);
            Assert.AreEqual(usePreprocessorClosure, settings.UsePreprocessorClosure);
            Assert.AreEqual(seaLevel, settings.SeaLevel);
            Assert.AreEqual(riverDischarge, settings.RiverDischarge);
            Assert.AreEqual(lakeLevel, settings.LakeLevel);
            Assert.AreEqual(windDirection, settings.WindDirection);
            Assert.AreEqual(windSpeed, settings.WindSpeed);
            Assert.AreEqual(comment, settings.Comment);
        }