Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -76,10 +76,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -342,6 +342,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -817,8 +863,7 @@ { calculation.InputParameters.Structure.Location, calculation.InputParameters.HydraulicBoundaryLocation.Location - }, - geometries[0].PointCollections.First()); + }, geometries[0].PointCollections.First()); } Assert.AreEqual("Berekeningen", mapData.Name); } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs (.../FailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs (.../FailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -62,10 +62,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs (.../FailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs (.../FailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -302,6 +302,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new FailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new FailureMechanismContext(new TestFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs (.../GrassCoverErosionInwardsFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs (.../GrassCoverErosionInwardsFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -75,10 +75,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -338,6 +338,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new GrassCoverErosionInwardsFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void NotifyObservers_ReferenceLineUpdated_MapDataUpdated() { // Setup Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -76,10 +76,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -341,6 +341,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new HeightStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new HeightStructuresFailureMechanismContext(new HeightStructuresFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -816,8 +862,7 @@ { calculation.InputParameters.Structure.Location, calculation.InputParameters.HydraulicBoundaryLocation.Location - }, - geometries[0].PointCollections.First()); + }, geometries[0].PointCollections.First()); } Assert.AreEqual("Berekeningen", mapData.Name); } Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -53,10 +53,11 @@ assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs (.../AssessmentSectionViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssessmentSectionViewTest.cs (.../AssessmentSectionViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -213,7 +213,7 @@ } [Test] - public void GivenChangedHydraulicBoundaryDatabase_WhenObserversNotified_MapDataUpdated() + public void GivenChangedHydraulicBoundaryDatabase_WhenHydraulicBoundaryDatabaseObserversNotified_MapDataUpdated() { // Given using (var view = new AssessmentSectionView()) @@ -231,10 +231,11 @@ AssertHydraulicBoundaryDatabaseData(mapData, assessmentSection.HydraulicBoundaryDatabase); assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); + assessmentSection.NotifyObservers(); // When - assessmentSection.NotifyObservers(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + assessmentSection.HydraulicBoundaryDatabase.NotifyObservers(); // Then AssertHydraulicBoundaryDatabaseData(mapData, assessmentSection.HydraulicBoundaryDatabase); Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -76,10 +76,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -353,6 +353,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new PipingFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -76,10 +76,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs =================================================================== diff -u -rb79953b0190350503839fffb1bc50b6471aea113 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision b79953b0190350503839fffb1bc50b6471aea113) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -341,6 +341,52 @@ } [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() + { + // Given + using (var view = new StabilityPointStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "old 1", 1, 2) + } + }; + var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "new 1", 1, 2) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase + }; + + view.Data = new StabilityPointStructuresFailureMechanismContext(new StabilityPointStructuresFailureMechanism(), assessmentSection); + + var hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + + // When + assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; + assessmentSection.NotifyObservers(); + newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); + newHydraulicBoundaryDatabase.NotifyObservers(); + + // Then + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -816,8 +862,7 @@ { calculation.InputParameters.Structure.Location, calculation.InputParameters.HydraulicBoundaryLocation.Location - }, - geometries[0].PointCollections.First()); + }, geometries[0].PointCollections.First()); } Assert.AreEqual("Berekeningen", mapData.Name); } Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -75,10 +75,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs =================================================================== diff -u -r86b6ce2b77450d63016858e8e18796c02bdaad52 -ra9c4acd761eeb0a5313d2c50a38ced02a018653e --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision 86b6ce2b77450d63016858e8e18796c02bdaad52) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision a9c4acd761eeb0a5313d2c50a38ced02a018653e) @@ -75,10 +75,11 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(() => { - if (hydraulicBoundaryDatabaseObserver.Observable == null && data.Parent.HydraulicBoundaryDatabase != null) + if (!ReferenceEquals(hydraulicBoundaryDatabaseObserver.Observable, data.Parent.HydraulicBoundaryDatabase)) { hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; } + UpdateMapData(); }); hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData);