public IEnumerable <IObservable> Update(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, ReadHydraulicLocationConfigurationDatabaseSettings readHydraulicLocationConfigurationDatabaseSettings, bool usePreprocessorClosure, string hlcdFilePath) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } if (hlcdFilePath == null) { throw new ArgumentNullException(nameof(hlcdFilePath)); } HydraulicLocationConfigurationSettingsUpdateHelper.SetHydraulicLocationConfigurationSettings( hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings, readHydraulicLocationConfigurationDatabaseSettings, usePreprocessorClosure, hlcdFilePath); var changedObjects = new List <IObservable> { hydraulicBoundaryDatabase }; changedObjects.AddRange(RiskeerDataSynchronizationService.ClearHydraulicBoundaryLocationCalculationOutput(assessmentSection)); changedObjects.AddRange(RiskeerDataSynchronizationService.ClearFailureMechanismCalculationOutputs(assessmentSection)); return(changedObjects); }
public void SetHydraulicLocationConfigurationSettings_ReadHydraulicLocationConfigurationDatabaseSettingsNotNull_SetExpectedValuesAndDoesNotLog() { // Setup const string filePath = "some/file/path"; var settings = new HydraulicLocationConfigurationSettings(); ReadHydraulicLocationConfigurationDatabaseSettings readSettings = ReadHydraulicLocationConfigurationDatabaseSettingsTestFactory.Create(); bool usePreprocessorClosure = new Random(21).NextBoolean(); // Call Action call = () => HydraulicLocationConfigurationSettingsUpdateHelper.SetHydraulicLocationConfigurationSettings( settings, readSettings, usePreprocessorClosure, filePath); // Assert TestHelper.AssertLogMessagesCount(call, 0); Assert.AreEqual(filePath, settings.FilePath); Assert.AreEqual(readSettings.ScenarioName, settings.ScenarioName); Assert.AreEqual(readSettings.Year, settings.Year); Assert.AreEqual(readSettings.Scope, settings.Scope); Assert.AreEqual(usePreprocessorClosure, settings.UsePreprocessorClosure); Assert.AreEqual(readSettings.SeaLevel, settings.SeaLevel); Assert.AreEqual(readSettings.RiverDischarge, settings.RiverDischarge); Assert.AreEqual(readSettings.LakeLevel, settings.LakeLevel); Assert.AreEqual(readSettings.WindDirection, settings.WindDirection); Assert.AreEqual(readSettings.WindSpeed, settings.WindSpeed); Assert.AreEqual(readSettings.Comment, settings.Comment); }
public void SetHydraulicLocationConfigurationSettings_ReadHydraulicLocationConfigurationDatabaseSettingsNull_SetDefaultValuesAndLogsWarning() { // Setup const string filePath = "some/file/path"; var settings = new HydraulicLocationConfigurationSettings(); bool usePreprocessorClosure = new Random(21).NextBoolean(); // Call Action call = () => HydraulicLocationConfigurationSettingsUpdateHelper.SetHydraulicLocationConfigurationSettings( settings, null, usePreprocessorClosure, filePath); // Assert const string expectedMessage = "De tabel 'ScenarioInformation' in het HLCD bestand is niet aanwezig. Er worden standaardwaarden " + "conform WBI2017 gebruikt voor de HLCD bestandsinformatie."; TestHelper.AssertLogMessageWithLevelIsGenerated(call, Tuple.Create(expectedMessage, LogLevelConstant.Warn), 1); Assert.AreEqual(filePath, settings.FilePath); Assert.AreEqual("WBI2017", settings.ScenarioName); Assert.AreEqual(2023, settings.Year); Assert.AreEqual("WBI2017", settings.Scope); Assert.AreEqual(usePreprocessorClosure, settings.UsePreprocessorClosure); Assert.AreEqual("Conform WBI2017", settings.SeaLevel); Assert.AreEqual("Conform WBI2017", settings.RiverDischarge); Assert.AreEqual("Conform WBI2017", settings.LakeLevel); Assert.AreEqual("Conform WBI2017", settings.WindDirection); Assert.AreEqual("Conform WBI2017", settings.WindSpeed); Assert.AreEqual("Gegenereerd door Riskeer (conform WBI2017)", settings.Comment); }
public void SetHydraulicLocationConfigurationSettings_HlcdFilePathNull_ThrowsArgumentNullException() { // Call TestDelegate call = () => HydraulicLocationConfigurationSettingsUpdateHelper.SetHydraulicLocationConfigurationSettings( new HydraulicLocationConfigurationSettings(), ReadHydraulicLocationConfigurationDatabaseSettingsTestFactory.Create(), false, null); // Assert var exception = Assert.Throws <ArgumentNullException>(call); Assert.AreEqual("hlcdFilePath", exception.ParamName); }
public IEnumerable <IObservable> Update(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase, ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase, IEnumerable <long> excludedLocationIds, string hydraulicBoundaryDatabaseFilePath, string hlcdFilePath) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } if (readHydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(readHydraulicBoundaryDatabase)); } if (readHydraulicLocationConfigurationDatabase == null) { throw new ArgumentNullException(nameof(readHydraulicLocationConfigurationDatabase)); } if (excludedLocationIds == null) { throw new ArgumentNullException(nameof(excludedLocationIds)); } if (hydraulicBoundaryDatabaseFilePath == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabaseFilePath)); } if (hlcdFilePath == null) { throw new ArgumentNullException(nameof(hlcdFilePath)); } if (!IsValidReadHydraulicLocationConfigurationDatabase(readHydraulicLocationConfigurationDatabase)) { string errorMessage = $"{nameof(readHydraulicLocationConfigurationDatabase)} must be null or contain exactly one item for " + "the collection of hydraulic location configuration database settings."; throw new ArgumentException(errorMessage); } var changedObjects = new List <IObservable>(); updateLocations = !hydraulicBoundaryDatabase.IsLinked() || hydraulicBoundaryDatabase.Version != readHydraulicBoundaryDatabase.Version; if (updateLocations) { hydraulicBoundaryDatabase.FilePath = hydraulicBoundaryDatabaseFilePath; hydraulicBoundaryDatabase.Version = readHydraulicBoundaryDatabase.Version; SetLocations(hydraulicBoundaryDatabase, readHydraulicBoundaryDatabase.Locations, readHydraulicLocationConfigurationDatabase.LocationIdMappings, excludedLocationIds.ToArray()); assessmentSection.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryDatabase.Locations); duneLocationsReplacementHandler.Replace(hydraulicBoundaryDatabase.Locations); changedObjects.AddRange(GetLocationsAndCalculationsObservables(hydraulicBoundaryDatabase)); changedObjects.AddRange(RiskeerDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection)); } else { if (hydraulicBoundaryDatabase.FilePath != hydraulicBoundaryDatabaseFilePath) { hydraulicBoundaryDatabase.FilePath = hydraulicBoundaryDatabaseFilePath; } } HydraulicLocationConfigurationSettingsUpdateHelper.SetHydraulicLocationConfigurationSettings( hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings, readHydraulicLocationConfigurationDatabase.ReadHydraulicLocationConfigurationDatabaseSettings?.Single(), readHydraulicLocationConfigurationDatabase.UsePreprocessorClosure, hlcdFilePath); return(changedObjects); }