Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -46,6 +46,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly Observer structuresObserver; @@ -73,6 +74,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); structuresObserver = new Observer(UpdateMapData); @@ -118,6 +120,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; structuresObserver.Observable = null; calculationInputObserver.Observable = null; @@ -128,6 +131,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; structuresObserver.Observable = data.WrappedData.ClosingStructures; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; @@ -150,6 +154,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -244,7 +244,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData( failureMechanism.Calculations.Cast>(), @@ -253,7 +253,7 @@ } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new ClosingStructuresFailureMechanismView()) @@ -287,17 +287,57 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } + + [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new ClosingStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new ClosingStructuresFailureMechanismContext(new ClosingStructuresFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { @@ -740,21 +780,6 @@ Assert.AreEqual("Kunstwerken", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs =================================================================== diff -u -r07e54440666b51d4a93039da2f8b5fa031fe4fe2 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs (.../FailureMechanismView.cs) (revision 07e54440666b51d4a93039da2f8b5fa031fe4fe2) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismView.cs (.../FailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -39,6 +39,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryLocationObserver; private readonly MapLineData referenceLineMapData; private readonly MapLineData sectionsMapData; @@ -57,6 +58,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryLocationObserver = new Observer(UpdateMapData); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryDatabaseMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryDatabaseMapData(); @@ -88,6 +90,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryLocationObserver.Observable = null; Map.ResetMapData(); return; @@ -96,6 +99,7 @@ mapControl.Data.Name = data.WrappedData.Name; failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryLocationObserver.Observable = data.Parent.HydraulicBoundaryDatabase; UpdateMapData(); } @@ -113,6 +117,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryLocationObserver.Dispose(); if (disposing && (components != null)) { Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs (.../FailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismViewTest.cs (.../FailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -207,12 +207,12 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); } } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new FailureMechanismView()) @@ -246,17 +246,57 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } + + [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new FailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new FailureMechanismContext(new TestFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { @@ -456,21 +496,6 @@ Assert.AreEqual("Referentielijn", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/MapDataTestHelperTest.cs =================================================================== diff -u -r52289b39d16efbf1ea1cd2980d62a8541527d23c -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/MapDataTestHelperTest.cs (.../MapDataTestHelperTest.cs) (revision 52289b39d16efbf1ea1cd2980d62a8541527d23c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/MapDataTestHelperTest.cs (.../MapDataTestHelperTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -26,12 +26,15 @@ using Core.Components.Gis.Geometries; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.HydraRing.Data; namespace Ringtoets.Common.Forms.TestUtil.Test { [TestFixture] public class MapDataTestHelperTest { + #region AssertFailureMechanismSectionsMapData + [Test] public void AssertFailureMechanismSectionsMapData_MapDataNotMapLineData_ThrowAssertionException() { @@ -181,5 +184,175 @@ // Assert Assert.DoesNotThrow(test); } + + #endregion + + #region AssertHydraulicBoundaryLocationsMapData + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_MapDataNotPointData_ThrowAssertionException() + { + // Setup + var mapData = new MapLineData("test"); + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(null, mapData); + + // Assert + Assert.Throws(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_DatabaseNullMapDataHasFeatures_ThrowAssertionException() + { + // Setup + var mapData = new MapPointData("test") + { + Features = new [] + { + new MapFeature(new[] + { + new MapGeometry(new[] + { + Enumerable.Empty() + }) + }), + new MapFeature(new[] + { + new MapGeometry(new[] + { + Enumerable.Empty() + }) + }) + } + }; + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(null, mapData); + + // Assert + Assert.Throws(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_FeaturesNotSameAsLocations_ThrowAssertionException() + { + // Setup + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 0, 0) + } + }; + + var mapData = new MapPointData("test"); + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, mapData); + + // Assert + Assert.Throws(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_FeatureGeometryNotSameAsLocations_ThrowAssertionException() + { + // Setup + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1, 0) + } + }; + + var mapData = new MapPointData("test") + { + Features = new[] + { + new MapFeature(new[] + { + new MapGeometry(new[] + { + new[] + { + new Point2D(0, 0) + } + }) + }) + } + }; + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, mapData); + + // Assert + Assert.Throws(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_MapDataNameNotCorrect_ThrowAssertionException() + { + // Setup + var mapData = new MapPointData("test"); + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(null, mapData); + + // Assert + Assert.Throws(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_WithoutDatabaseMapDataCorrect_DoesNotThrow() + { + // Setup + var mapData = new MapPointData("Hydraulische randvoorwaarden"); + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(null, mapData); + + // Assert + Assert.DoesNotThrow(test); + } + + [Test] + public void AssertHydraulicBoundaryLocationsMapData_WithDatabaseMapDataCorrect_DoesNotThrow() + { + // Setup + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1, 0) + } + }; + + var mapData = new MapPointData("Hydraulische randvoorwaarden") + { + Features = new[] + { + new MapFeature(new[] + { + new MapGeometry(new[] + { + new[] + { + new Point2D(1, 0) + } + }) + }) + } + }; + + // Call + TestDelegate test = () => MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, mapData); + + // Assert + Assert.DoesNotThrow(test); + } + + #endregion } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj =================================================================== diff -u -r52289b39d16efbf1ea1cd2980d62a8541527d23c -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj (.../Ringtoets.Common.Forms.TestUtil.Test.csproj) (revision 52289b39d16efbf1ea1cd2980d62a8541527d23c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/Ringtoets.Common.Forms.TestUtil.Test.csproj (.../Ringtoets.Common.Forms.TestUtil.Test.csproj) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -70,6 +70,14 @@ {318BA582-88C9-4816-A54A-A7E431461DE3} Core.Components.Gis + + {DD7ECAFF-D8A1-4D92-99C0-27498ACB32D4} + Core.Components.DotSpatial.Test + + + {70f8cc9c-5bc8-4fb2-b201-eae7fa8088c2} + Ringtoets.HydraRing.Data + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/MapDataTestHelper.cs =================================================================== diff -u -r52289b39d16efbf1ea1cd2980d62a8541527d23c -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/MapDataTestHelper.cs (.../MapDataTestHelper.cs) (revision 52289b39d16efbf1ea1cd2980d62a8541527d23c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/MapDataTestHelper.cs (.../MapDataTestHelper.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -24,6 +24,7 @@ using Core.Components.Gis.Data; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.HydraRing.Data; namespace Ringtoets.Common.Forms.TestUtil { @@ -60,5 +61,35 @@ } Assert.AreEqual("Vakindeling", mapData.Name); } + + /// + /// Asserts whether the contains the data that is representative for the + /// + /// The that contains the original data. + /// The that needs to be asserted. + /// Thrown when: + /// + /// is not . + /// The number of and features + /// in are not the same. + /// The points of a location and the geometry of a feature are not the same. + /// The name of the is not "Hydraulische randvoorwaarden". + /// + public static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) + { + Assert.IsInstanceOf(mapData); + var hydraulicLocationsMapData = (MapPointData)mapData; + if (database == null) + { + CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features); + } + else + { + Assert.AreEqual(database.Locations.Count, hydraulicLocationsMapData.Features.Length); + CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), + hydraulicLocationsMapData.Features.SelectMany(f => f.MapGeometries.First().PointCollections.First())); + } + Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj =================================================================== diff -u -r52289b39d16efbf1ea1cd2980d62a8541527d23c -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj (.../Ringtoets.Common.Forms.TestUtil.csproj) (revision 52289b39d16efbf1ea1cd2980d62a8541527d23c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/Ringtoets.Common.Forms.TestUtil.csproj (.../Ringtoets.Common.Forms.TestUtil.csproj) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -70,6 +70,10 @@ {318BA582-88C9-4816-A54A-A7E431461DE3} Core.Components.Gis + + {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} + Ringtoets.HydraRing.Data + {D4200F43-3F72-4F42-AF0A-8CED416A38EC} Ringtoets.Common.Data Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs (.../GrassCoverErosionInwardsFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismView.cs (.../GrassCoverErosionInwardsFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -46,6 +46,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer dikeProfilesObserver; private readonly RecursiveObserver calculationInputObserver; @@ -72,6 +73,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); dikeProfilesObserver = new Observer(UpdateMapData); calculationInputObserver = new RecursiveObserver( @@ -116,6 +118,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; dikeProfilesObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -125,6 +128,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; dikeProfilesObserver.Observable = data.WrappedData.DikeProfiles; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; calculationGroupObserver.Observable = data.WrappedData.CalculationsGroup; @@ -147,6 +151,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); dikeProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -239,15 +239,15 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertDikeProfiles(failureMechanism.DikeProfiles, mapDataList[dikeProfilesIndex]); AssertForeshoreProfiles(failureMechanism.DikeProfiles.Select(dp => dp.ForeshoreProfile), mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } } [Test] - public void NotifyObservers_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void NotifyObservers_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new GrassCoverErosionInwardsFailureMechanismView()) @@ -281,18 +281,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; // Call assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } + + [Test] + public void NotifyObservers_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new GrassCoverErosionInwardsFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + [Test] public void NotifyObservers_ReferenceLineUpdated_MapDataUpdated() { @@ -731,21 +771,6 @@ Assert.AreEqual("Voorlandprofielen", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -47,6 +47,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly RecursiveObserver calculationInputObserver; @@ -72,6 +73,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); calculationInputObserver = new RecursiveObserver( @@ -114,6 +116,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -123,6 +126,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -144,6 +148,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -238,15 +238,15 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new GrassCoverErosionOutwardsFailureMechanismView()) @@ -280,18 +280,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new GrassCoverErosionOutwardsFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new GrassCoverErosionOutwardsFailureMechanismContext(new GrassCoverErosionOutwardsFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -670,21 +710,6 @@ Assert.AreEqual("Voorlandprofielen", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -46,6 +46,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly Observer structuresObserver; @@ -73,6 +74,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); structuresObserver = new Observer(UpdateMapData); @@ -118,6 +120,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; structuresObserver.Observable = null; calculationInputObserver.Observable = null; @@ -128,6 +131,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; structuresObserver.Observable = data.WrappedData.HeightStructures; calculationObserver.Observable = data.WrappedData.CalculationsGroup; @@ -152,6 +156,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -243,7 +243,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData( failureMechanism.Calculations.Cast>(), @@ -252,7 +252,7 @@ } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new HeightStructuresFailureMechanismView()) @@ -286,18 +286,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new HeightStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new HeightStructuresFailureMechanismContext(new HeightStructuresFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -739,21 +779,6 @@ Assert.AreEqual("Kunstwerken", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -45,6 +45,7 @@ public partial class PipingFailureMechanismView : UserControl, IMapView { private readonly Observer failureMechanismObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer assessmentSectionObserver; private readonly Observer surfaceLinesObserver; private readonly Observer stochasticSoilModelsObserver; @@ -73,6 +74,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); surfaceLinesObserver = new Observer(UpdateMapData); stochasticSoilModelsObserver = new Observer(UpdateMapData); @@ -118,6 +120,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; surfaceLinesObserver.Observable = null; stochasticSoilModelsObserver.Observable = null; calculationInputObserver.Observable = null; @@ -128,6 +131,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; surfaceLinesObserver.Observable = data.WrappedData.SurfaceLines; stochasticSoilModelsObserver.Observable = data.WrappedData.StochasticSoilModels; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; @@ -151,6 +155,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); stochasticSoilModelsObserver.Dispose(); surfaceLinesObserver.Dispose(); calculationInputObserver.Dispose(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -255,14 +255,14 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertStochasticSoilModelsMapData(failureMechanism.StochasticSoilModels, mapDataList[stochasticSoilModelsIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new PipingFailureMechanismView()) @@ -297,18 +297,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; // Call assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } + + [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new PipingFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { @@ -731,21 +771,6 @@ Assert.AreEqual("Referentielijn", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.SelectMany(f => f.MapGeometries.First().PointCollections.First())); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -46,6 +46,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly Observer structuresObserver; @@ -73,6 +74,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); structuresObserver = new Observer(UpdateMapData); @@ -118,6 +120,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; structuresObserver.Observable = null; calculationInputObserver.Observable = null; @@ -128,6 +131,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; structuresObserver.Observable = data.WrappedData.StabilityPointStructures; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; @@ -151,6 +155,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -243,7 +243,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData( failureMechanism.Calculations.Cast>(), @@ -252,7 +252,7 @@ } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new StabilityPointStructuresFailureMechanismView()) @@ -286,18 +286,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new StabilityPointStructuresFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(new StabilityPointStructuresFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -739,21 +779,6 @@ Assert.AreEqual("Kunstwerken", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -47,6 +47,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly RecursiveObserver calculationInputObserver; @@ -72,6 +73,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); calculationInputObserver = new RecursiveObserver( @@ -114,6 +116,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -123,6 +126,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -145,6 +149,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs (.../StabilityStoneCoverFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs (.../StabilityStoneCoverFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -238,14 +238,14 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new StabilityStoneCoverFailureMechanismView()) @@ -279,18 +279,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new StabilityStoneCoverFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new StabilityStoneCoverFailureMechanismContext(new StabilityStoneCoverFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -669,21 +709,6 @@ Assert.AreEqual("Voorlandprofielen", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -47,6 +47,7 @@ { private readonly Observer failureMechanismObserver; private readonly Observer assessmentSectionObserver; + private readonly Observer hydraulicBoundaryDatabaseObserver; private readonly Observer foreshoreProfilesObserver; private readonly RecursiveObserver calculationInputObserver; @@ -72,6 +73,7 @@ failureMechanismObserver = new Observer(UpdateMapData); assessmentSectionObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); foreshoreProfilesObserver = new Observer(UpdateMapData); calculationInputObserver = new RecursiveObserver( @@ -114,6 +116,7 @@ { failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; + hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -123,6 +126,7 @@ { failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; + hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -144,6 +148,7 @@ { failureMechanismObserver.Dispose(); assessmentSectionObserver.Dispose(); + hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs =================================================================== diff -u -r51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6 -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs (.../WaveImpactAsphaltCoverFailureMechanismViewTest.cs) (revision 51c41f19c5b5ed0a0ad42b5dc3a969246d58a2d6) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs (.../WaveImpactAsphaltCoverFailureMechanismViewTest.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) @@ -238,15 +238,15 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase, mapDataList[hydraulicBoundaryDatabaseIndex]); AssertForeshoreProfiles(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } } [Test] - public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup using (var view = new WaveImpactAsphaltCoverFailureMechanismView()) @@ -280,18 +280,58 @@ var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); // Precondition - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1, hydraulicBoundaryDatabaseMapData); // Call assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; assessmentSection.NotifyObservers(); // Assert - AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2, hydraulicBoundaryDatabaseMapData); } } [Test] + public void UpdateObserver_HydraulicBoundaryDatabaseUpdated_MapDataUpdated() + { + // Setup + using (var view = new WaveImpactAsphaltCoverFailureMechanismView()) + { + var map = (MapControl) view.Controls[0]; + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } + }; + + var assessmentSection = new TestAssessmentSection + { + HydraulicBoundaryDatabase = hydraulicBoundaryDatabase + }; + + var failureMechanismContext = new WaveImpactAsphaltCoverFailureMechanismContext(new WaveImpactAsphaltCoverFailureMechanism(), assessmentSection); + + view.Data = failureMechanismContext; + + var hydraulicBoundaryDatabaseMapData = map.Data.Collection.ElementAt(hydraulicBoundaryDatabaseIndex); + + // Precondition + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + + hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + + // Call + hydraulicBoundaryDatabase.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase, hydraulicBoundaryDatabaseMapData); + } + } + + [Test] public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() { // Setup @@ -670,21 +710,6 @@ Assert.AreEqual("Voorlandprofielen", mapData.Name); } - private static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) - { - Assert.IsInstanceOf(mapData); - var hydraulicLocationsMapData = (MapPointData) mapData; - if (database == null) - { - CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - else - { - CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.First().MapGeometries.First().PointCollections.First()); - } - Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); - } - private static void AssertFailureMechanismSectionsStartPointMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData);