Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -r6d3c6a02f2fa74252b58a15592ec94785bd78c8a -rd696a981f204db5592dc3304d9ad8f4f7ef94128 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 6d3c6a02f2fa74252b58a15592ec94785bd78c8a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision d696a981f204db5592dc3304d9ad8f4f7ef94128) @@ -1295,6 +1295,7 @@ return; } + var previousHydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; using (var hydraulicBoundaryLocationsImporter = new HydraulicBoundaryDatabaseImporter()) { if (hydraulicBoundaryLocationsImporter.Import(assessmentSection, databaseFile)) @@ -1304,9 +1305,11 @@ ClearCalculations(assessmentSection); } - assessmentSection.GrassCoverErosionOutwards.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(assessmentSection.HydraulicBoundaryDatabase); - assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.NotifyObservers(); - + if (!ReferenceEquals(previousHydraulicBoundaryDatabase, assessmentSection.HydraulicBoundaryDatabase)) + { + assessmentSection.GrassCoverErosionOutwards.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(assessmentSection.HydraulicBoundaryDatabase); + assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.NotifyObservers(); + } log.InfoFormat(RingtoetsFormsResources.RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked, assessmentSection.HydraulicBoundaryDatabase.FilePath); } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs =================================================================== diff -u -rde11965509b522ad5f7446e621a95737ed25da67 -rd696a981f204db5592dc3304d9ad8f4f7ef94128 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision de11965509b522ad5f7446e621a95737ed25da67) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision d696a981f204db5592dc3304d9ad8f4f7ef94128) @@ -34,6 +34,7 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; using Ringtoets.Integration.Forms.PresentationObjects; @@ -254,6 +255,12 @@ public void GivenNoFilePathIsSet_WhenOpeningValidFileFromContextMenu_ThenPathWillBeSetAndNotifiesObserverAndLogMessageAdded() { // Given + var assessmentSectionObserver = mocks.StrictMock(); + assessmentSectionObserver.Expect(o => o.UpdateObserver()); + + var grassCoverErosionOutwardsLocationsObserver = mocks.StrictMock(); + grassCoverErosionOutwardsLocationsObserver.Expect(o => o.UpdateObserver()); + string testFile = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); int contextMenuImportHydraulicBoundaryDatabaseIndex = 0; @@ -268,6 +275,9 @@ gui.Expect(cmp => cmp.Get(hydraulicBoundaryDatabaseContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); mocks.ReplayAll(); + assessmentSection.Attach(assessmentSectionObserver); + assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Attach(grassCoverErosionOutwardsLocationsObserver); + DialogBoxHandler = (name, wnd) => { OpenFileDialogTester tester = new OpenFileDialogTester(wnd); @@ -292,6 +302,7 @@ }); Assert.IsNotNull(assessmentSection.HydraulicBoundaryDatabase); + Assert.IsNotEmpty(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations); } } mocks.VerifyAll(); @@ -393,6 +404,7 @@ // Given string validFile = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); IObserver assessmentObserver = mocks.StrictMock(); + IObserver grassCoverErosionOutwardsLocationsObserver = mocks.StrictMock(); int contextMenuImportHydraulicBoundaryDatabaseIndex = 0; AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -416,6 +428,7 @@ }; assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + assessmentSection.GrassCoverErosionOutwards.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(assessmentSection.HydraulicBoundaryDatabase); // Precondition Assert.IsNotNull(assessmentSection.HydraulicBoundaryDatabase); @@ -424,6 +437,8 @@ string currentFilePath = assessmentSection.HydraulicBoundaryDatabase.FilePath; string currentVersion = assessmentSection.HydraulicBoundaryDatabase.Version; var currentLocations = assessmentSection.HydraulicBoundaryDatabase.Locations; + var currentFirstGrassCoverErosionOutwardsLocation = assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.First(); + assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Attach(grassCoverErosionOutwardsLocationsObserver); using (TreeViewControl treeViewControl = new TreeViewControl()) using (RingtoetsPlugin plugin = new RingtoetsPlugin()) @@ -456,6 +471,7 @@ CollectionAssert.AreEqual(currentLocations, assessmentSection.HydraulicBoundaryDatabase.Locations); Assert.AreSame(assessmentSection.HydraulicBoundaryDatabase.Locations.First(), pipingCalculation.InputParameters.HydraulicBoundaryLocation); Assert.AreSame(pipingOutput, pipingCalculation.Output); + Assert.AreSame(currentFirstGrassCoverErosionOutwardsLocation, assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.First()); } } mocks.VerifyAll(); Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs =================================================================== diff -u -r51d8e744ffb2168ca56ca4b6260ad9c2590c0170 -rd696a981f204db5592dc3304d9ad8f4f7ef94128 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs (.../RingtoetsPluginTest.cs) (revision 51d8e744ffb2168ca56ca4b6260ad9c2590c0170) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsPluginTest.cs (.../RingtoetsPluginTest.cs) (revision d696a981f204db5592dc3304d9ad8f4f7ef94128) @@ -54,8 +54,6 @@ using Ringtoets.Integration.Forms.PropertyClasses; using Ringtoets.Integration.Forms.Views; using Ringtoets.Integration.Forms.Views.SectionResultViews; -using Ringtoets.Revetment.Forms.PresentationObjects; -using Ringtoets.Revetment.Forms.PropertyClasses; using RingtoetsFormsResources = Ringtoets.Integration.Forms.Properties.Resources; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources;