Index: Riskeer/Integration/src/Riskeer.Integration.IO/Handlers/IHydraulicLocationConfigurationDatabaseUpdateHandler.cs =================================================================== diff -u -r9bdde447cc42b31705d83a975a414625f7f81bcb -r3cf4db7514bf18c69df8848ccebfaad27c052145 --- Riskeer/Integration/src/Riskeer.Integration.IO/Handlers/IHydraulicLocationConfigurationDatabaseUpdateHandler.cs (.../IHydraulicLocationConfigurationDatabaseUpdateHandler.cs) (revision 9bdde447cc42b31705d83a975a414625f7f81bcb) +++ Riskeer/Integration/src/Riskeer.Integration.IO/Handlers/IHydraulicLocationConfigurationDatabaseUpdateHandler.cs (.../IHydraulicLocationConfigurationDatabaseUpdateHandler.cs) (revision 3cf4db7514bf18c69df8848ccebfaad27c052145) @@ -46,11 +46,13 @@ /// database for. /// The read hydraulic location configuration database to /// update with. + /// The lookup with the hydraulic boundary databases to update. /// The file path of the hydraulic location configuration database. /// All objects that have been affected by the update. /// Thrown when any parameter is null. IEnumerable Update(HydraulicBoundaryData hydraulicBoundaryData, ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase, + IDictionary hydraulicBoundaryDatabaseLookup, string hlcdFilePath); } } \ No newline at end of file Index: Riskeer/Integration/src/Riskeer.Integration.IO/Importers/HydraulicLocationConfigurationDatabaseImporter.cs =================================================================== diff -u -rf17046af367322baf3bf56202f48e23641c1e9f5 -r3cf4db7514bf18c69df8848ccebfaad27c052145 --- Riskeer/Integration/src/Riskeer.Integration.IO/Importers/HydraulicLocationConfigurationDatabaseImporter.cs (.../HydraulicLocationConfigurationDatabaseImporter.cs) (revision f17046af367322baf3bf56202f48e23641c1e9f5) +++ Riskeer/Integration/src/Riskeer.Integration.IO/Importers/HydraulicLocationConfigurationDatabaseImporter.cs (.../HydraulicLocationConfigurationDatabaseImporter.cs) (revision 3cf4db7514bf18c69df8848ccebfaad27c052145) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2022. All rights reserved. +// Copyright (C) Stichting Deltares 2022. All rights reserved. // // This file is part of Riskeer. // @@ -175,7 +175,8 @@ private void SetReadHydraulicLocationConfigurationSettingsToDataModel(ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase) { NotifyProgress(RiskeerCommonIOResources.Importer_ProgressText_Adding_imported_data_to_AssessmentSection, numberOfSteps, numberOfSteps); - changedObservables.AddRange(updateHandler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, FilePath)); + changedObservables.AddRange(updateHandler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, + new Dictionary(), FilePath)); } private ReadResult HandleCriticalFileReadError(Exception e) Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandler.cs =================================================================== diff -u -r9bdde447cc42b31705d83a975a414625f7f81bcb -r3cf4db7514bf18c69df8848ccebfaad27c052145 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandler.cs (.../HydraulicLocationConfigurationDatabaseUpdateHandler.cs) (revision 9bdde447cc42b31705d83a975a414625f7f81bcb) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandler.cs (.../HydraulicLocationConfigurationDatabaseUpdateHandler.cs) (revision 3cf4db7514bf18c69df8848ccebfaad27c052145) @@ -73,6 +73,7 @@ public IEnumerable Update(HydraulicBoundaryData hydraulicBoundaryData, ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase, + IDictionary hydraulicBoundaryDatabaseLookup, string hlcdFilePath) { if (hydraulicBoundaryData == null) @@ -85,6 +86,11 @@ throw new ArgumentNullException(nameof(readHydraulicLocationConfigurationDatabase)); } + if (hydraulicBoundaryDatabaseLookup == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryDatabaseLookup)); + } + if (hlcdFilePath == null) { throw new ArgumentNullException(nameof(hlcdFilePath)); Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Importers/HydraulicLocationConfigurationDatabaseImporterTest.cs =================================================================== diff -u -rf17046af367322baf3bf56202f48e23641c1e9f5 -r3cf4db7514bf18c69df8848ccebfaad27c052145 --- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Importers/HydraulicLocationConfigurationDatabaseImporterTest.cs (.../HydraulicLocationConfigurationDatabaseImporterTest.cs) (revision f17046af367322baf3bf56202f48e23641c1e9f5) +++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Importers/HydraulicLocationConfigurationDatabaseImporterTest.cs (.../HydraulicLocationConfigurationDatabaseImporterTest.cs) (revision 3cf4db7514bf18c69df8848ccebfaad27c052145) @@ -237,7 +237,7 @@ var mocks = new MockRepository(); var handler = mocks.Stub(); handler.Stub(h => h.InquireConfirmation()).Return(true); - handler.Stub(h => h.Update(null, null, null)).IgnoreArguments().Return(Enumerable.Empty()); + handler.Stub(h => h.Update(null, null, null, null)).IgnoreArguments().Return(Enumerable.Empty()); mocks.ReplayAll(); var progressChangeNotifications = new List(); @@ -269,6 +269,7 @@ handler.Expect(h => h.InquireConfirmation()).Return(true); handler.Expect(h => h.Update(Arg.Is.Same(hydraulicBoundaryData), Arg.Is.NotNull, + Arg>.Is.NotNull, Arg.Is.Equal(hlcdFilePath))) .Return(Enumerable.Empty()); mocks.ReplayAll(); @@ -301,6 +302,7 @@ handler.Expect(h => h.InquireConfirmation()).Return(true); handler.Expect(h => h.Update(Arg.Is.Same(hydraulicBoundaryData), Arg.Is.NotNull, + Arg>.Is.NotNull, Arg.Is.Equal(filePath))) .Return(Enumerable.Empty()); mocks.ReplayAll(); @@ -334,6 +336,7 @@ handler.Expect(h => h.InquireConfirmation()).Return(true); handler.Expect(h => h.Update(Arg.Is.NotNull, Arg.Is.NotNull, + Arg>.Is.NotNull, Arg.Is.NotNull)) .Return(new[] { @@ -393,7 +396,7 @@ var mocks = new MockRepository(); var handler = mocks.Stub(); handler.Stub(h => h.InquireConfirmation()).Return(true); - handler.Stub(h => h.Update(null, null, null)).IgnoreArguments().Return(Enumerable.Empty()); + handler.Stub(h => h.Update(null, null, null, null)).IgnoreArguments().Return(Enumerable.Empty()); mocks.ReplayAll(); HydraulicBoundaryData hydraulicBoundaryData = CreateLinkedHydraulicBoundaryData(); Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandlerTest.cs =================================================================== diff -u -r9bdde447cc42b31705d83a975a414625f7f81bcb -r3cf4db7514bf18c69df8848ccebfaad27c052145 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandlerTest.cs (.../HydraulicLocationConfigurationDatabaseUpdateHandlerTest.cs) (revision 9bdde447cc42b31705d83a975a414625f7f81bcb) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Handlers/HydraulicLocationConfigurationDatabaseUpdateHandlerTest.cs (.../HydraulicLocationConfigurationDatabaseUpdateHandlerTest.cs) (revision 3cf4db7514bf18c69df8848ccebfaad27c052145) @@ -125,7 +125,8 @@ var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); // Call - void Call() => handler.Update(null, ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), ""); + void Call() => handler.Update(null, ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), + new Dictionary(), ""); // Assert var exception = Assert.Throws(Call); @@ -139,21 +140,36 @@ var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); // Call - void Call() => handler.Update(new HydraulicBoundaryData(), null, ""); + void Call() => handler.Update(new HydraulicBoundaryData(), null, new Dictionary(), ""); // Assert var exception = Assert.Throws(Call); Assert.AreEqual("readHydraulicLocationConfigurationDatabase", exception.ParamName); } [Test] + public void Update_HydraulicBoundaryDatabaseLookupNull_ThrowsArgumentNullException() + { + // Setup + var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); + + // Call + void Call() => handler.Update(new HydraulicBoundaryData(), ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), null, ""); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("hydraulicBoundaryDatabaseLookup", exception.ParamName); + } + + [Test] public void Update_HlcdFilePathNull_ThrowsArgumentNullException() { // Setup var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); // Call - void Call() => handler.Update(new HydraulicBoundaryData(), ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), null); + void Call() => handler.Update(new HydraulicBoundaryData(), ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), + new Dictionary(), null); // Assert var exception = Assert.Throws(Call); @@ -168,9 +184,10 @@ var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); var hydraulicBoundaryData = new HydraulicBoundaryData(); ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase = ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1); + var lookup = new Dictionary(); // Call - void Call() => handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, hlcdFilePath); + void Call() => handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, lookup, hlcdFilePath); // Assert const string expectedMessage = "De tabel 'ScenarioInformation' in het HLCD bestand is niet aanwezig. Er worden standaardwaarden " + @@ -191,16 +208,17 @@ } [Test] - public void Update_ReadHydraulicLocationConfigurationDatabaseWithSetetings_SetsExpectedValuesAndDoesNotLog() + public void Update_ReadHydraulicLocationConfigurationDatabaseWithSettings_SetsExpectedValuesAndDoesNotLog() { // Setup const string hlcdFilePath = "some/file/path"; var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); var hydraulicBoundaryData = new HydraulicBoundaryData(); ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase = ReadHydraulicLocationConfigurationDatabaseTestFactory.CreateWithConfigurationSettings(1); + var lookup = new Dictionary(); // Call - void Call() => handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, hlcdFilePath); + void Call() => handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, lookup, hlcdFilePath); // Assert TestHelper.AssertLogMessagesCount(Call, 0); @@ -226,9 +244,10 @@ var handler = new HydraulicLocationConfigurationDatabaseUpdateHandler(CreateAssessmentSectionWithHydraulicBoundaryDatabases()); var hydraulicBoundaryData = new HydraulicBoundaryData(); ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase = ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1); + var lookup = new Dictionary(); // Call - IEnumerable changedObjects = handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, "some/file/path"); + IEnumerable changedObjects = handler.Update(hydraulicBoundaryData, readHydraulicLocationConfigurationDatabase, lookup, "some/file/path"); // Assert CollectionAssert.AreEqual(new Observable[] @@ -268,6 +287,7 @@ IEnumerable changedObjects = handler.Update( assessmentSection.HydraulicBoundaryData, ReadHydraulicLocationConfigurationDatabaseTestFactory.Create(1), + new Dictionary(), "some/file/path"); // Assert