Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r50a5a31ec15cff3b6df08b80b03659b7dba9ab9a -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision 50a5a31ec15cff3b6df08b80b03659b7dba9ab9a) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/Views/ClosingStructuresFailureMechanismViewTest.cs (.../ClosingStructuresFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -666,6 +666,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + failureMechanism.CalculationsGroup.Children.Add(calculationB); // Call @@ -706,6 +710,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.InputParameters.Structure = new TestClosingStructure(calculationLocationB); // Call @@ -745,6 +753,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.Name = "new name"; // Call Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs =================================================================== diff -u -rf1f94637a6b45b394493bf16a078b317c02d329b -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision f1f94637a6b45b394493bf16a078b317c02d329b) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/Views/GrassCoverErosionOutwardsFailureMechanismView.cs (.../GrassCoverErosionOutwardsFailureMechanismView.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -52,6 +52,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver calculationObserver; + private readonly RecursiveObserver foreshoreProfileObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -80,6 +81,7 @@ UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))); calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); mapDataCollection = new MapDataCollection(GrassCoverErosionOutwardsDataResources.GrassCoverErosionOutwardsFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -115,6 +117,7 @@ assessmentSectionObserver.Observable = null; hydraulicBoundaryLocationsObserver.Observable = null; foreshoreProfilesObserver.Observable = null; + foreshoreProfileObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; @@ -127,6 +130,7 @@ assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryLocationsObserver.Observable = data.WrappedData.HydraulicBoundaryLocations; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + foreshoreProfileObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -152,6 +156,7 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryLocationsObserver.Dispose(); foreshoreProfilesObserver.Dispose(); + foreshoreProfileObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs =================================================================== diff -u -r6678115bc8c06dcc0b676429038e1839b128d6f2 -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision 6678115bc8c06dcc0b676429038e1839b128d6f2) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/Views/GrassCoverErosionOutwardsFailureMechanismViewTest.cs (.../GrassCoverErosionOutwardsFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -389,6 +389,48 @@ } [Test] + public void UpdateObserver_ForeshoreProfileUpdate_MapDataUpdated() + { + // Setup + using (var view = new GrassCoverErosionOutwardsFailureMechanismView()) + { + IMapControl map = ((RingtoetsMapControl)view.Controls[0]).MapControl; + + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + var failureMechanismContext = new GrassCoverErosionOutwardsFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + var foreshoreProfile = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + }); + failureMechanism.ForeshoreProfiles.AddRange(new[] + { + foreshoreProfile + }, "path"); + + view.Data = failureMechanismContext; + + MapData foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + var foreshoreProfileToUpdateFrom = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(2, 2), + new Point2D(3, 3) + }); + foreshoreProfile.CopyProperties(foreshoreProfileToUpdateFrom); + foreshoreProfile.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + + [Test] public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() { // Setup @@ -467,6 +509,9 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationB); // Call @@ -499,10 +544,14 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + calculationA.InputParameters.ForeshoreProfile = foreshoreProfileB; // Call @@ -534,11 +583,14 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; - + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + calculationA.Name = "new name"; // Call Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs =================================================================== diff -u -rf1f94637a6b45b394493bf16a078b317c02d329b -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision f1f94637a6b45b394493bf16a078b317c02d329b) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -52,6 +52,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver> calculationObserver; + private readonly RecursiveObserver foreshoreProfileObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -90,6 +91,7 @@ UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType>().Select(pc => pc.InputParameters))); calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver>(UpdateMapData, pcg => pcg.Children); + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); mapDataCollection = new MapDataCollection(HeightStructuresDataResources.HeightStructuresFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -127,6 +129,7 @@ assessmentSectionObserver.Observable = null; hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; + foreshoreProfileObserver.Observable = null; structuresObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -140,6 +143,7 @@ assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + foreshoreProfileObserver.Observable = data.WrappedData.ForeshoreProfiles; structuresObserver.Observable = data.WrappedData.HeightStructures; calculationObserver.Observable = data.WrappedData.CalculationsGroup; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; @@ -167,6 +171,7 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); + foreshoreProfileObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r6678115bc8c06dcc0b676429038e1839b128d6f2 -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision 6678115bc8c06dcc0b676429038e1839b128d6f2) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismViewTest.cs (.../HeightStructuresFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -516,7 +516,49 @@ MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, sectionsEndsMapData); } } + + [Test] + public void UpdateObserver_ForeshoreProfileUpdate_MapDataUpdated() + { + // Setup + using (var view = new HeightStructuresFailureMechanismView()) + { + IMapControl map = ((RingtoetsMapControl)view.Controls[0]).MapControl; + var failureMechanism = new HeightStructuresFailureMechanism(); + var failureMechanismContext = new HeightStructuresFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + var foreshoreProfile = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + }); + failureMechanism.ForeshoreProfiles.AddRange(new[] + { + foreshoreProfile + }, "path"); + + view.Data = failureMechanismContext; + + MapData foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + var foreshoreProfileToUpdateFrom = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(2, 2), + new Point2D(3, 3) + }); + foreshoreProfile.CopyProperties(foreshoreProfileToUpdateFrom); + foreshoreProfile.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + [Test] public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() { @@ -641,6 +683,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + failureMechanism.CalculationsGroup.Children.Add(calculationB); // Call @@ -677,11 +723,16 @@ Structure = new TestHeightStructure(calculationLocationA) } }; + failureMechanism.CalculationsGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.InputParameters.Structure = new TestHeightStructure(calculationLocationB); // Call @@ -717,11 +768,16 @@ Structure = new TestHeightStructure(calculationLocationA) } }; + failureMechanism.CalculationsGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.Name = "new name"; // Call Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs =================================================================== diff -u -rf1f94637a6b45b394493bf16a078b317c02d329b -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision f1f94637a6b45b394493bf16a078b317c02d329b) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismView.cs (.../StabilityPointStructuresFailureMechanismView.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -52,6 +52,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver> calculationObserver; + private readonly RecursiveObserver foreshoreProfileObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -90,6 +91,7 @@ UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType>().Select(pc => pc.InputParameters))); calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver>(UpdateMapData, pcg => pcg.Children); + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); mapDataCollection = new MapDataCollection(StabilityPointStructuresDataResources.StabilityPointStructuresFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -127,6 +129,7 @@ assessmentSectionObserver.Observable = null; hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; + foreshoreProfileObserver.Observable = null; structuresObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; @@ -140,6 +143,7 @@ assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + foreshoreProfileObserver.Observable = data.WrappedData.ForeshoreProfiles; structuresObserver.Observable = data.WrappedData.StabilityPointStructures; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; calculationGroupObserver.Observable = data.WrappedData.CalculationsGroup; @@ -166,6 +170,7 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); + foreshoreProfileObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs =================================================================== diff -u -r6678115bc8c06dcc0b676429038e1839b128d6f2 -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision 6678115bc8c06dcc0b676429038e1839b128d6f2) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismViewTest.cs (.../StabilityPointStructuresFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -505,6 +505,48 @@ } [Test] + public void UpdateObserver_ForeshoreProfileUpdate_MapDataUpdated() + { + // Setup + using (var view = new StabilityPointStructuresFailureMechanismView()) + { + IMapControl map = ((RingtoetsMapControl)view.Controls[0]).MapControl; + + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + var foreshoreProfile = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + }); + failureMechanism.ForeshoreProfiles.AddRange(new[] + { + foreshoreProfile + }, "path"); + + view.Data = failureMechanismContext; + + MapData foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + var foreshoreProfileToUpdateFrom = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(2, 2), + new Point2D(3, 3) + }); + foreshoreProfile.CopyProperties(foreshoreProfileToUpdateFrom); + foreshoreProfile.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + + [Test] public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() { // Setup @@ -620,6 +662,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + failureMechanism.CalculationsGroup.Children.Add(calculationB); // Call @@ -654,11 +700,16 @@ Structure = new TestStabilityPointStructure(calculationLocationA) } }; + failureMechanism.CalculationsGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.InputParameters.Structure = new TestStabilityPointStructure(calculationLocationB); // Call @@ -692,11 +743,16 @@ Structure = new TestStabilityPointStructure(calculationLocationA) } }; + failureMechanism.CalculationsGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast>(), + calculationMapData); + calculationA.Name = "new name"; // Call Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs =================================================================== diff -u -rf1f94637a6b45b394493bf16a078b317c02d329b -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision f1f94637a6b45b394493bf16a078b317c02d329b) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverFailureMechanismView.cs (.../StabilityStoneCoverFailureMechanismView.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -52,6 +52,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver calculationObserver; + private readonly RecursiveObserver foreshoreProfileObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -88,6 +89,7 @@ UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))); calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); mapDataCollection = new MapDataCollection(StabilityStoneCoverDataResources.StabilityStoneCoverFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -123,6 +125,7 @@ assessmentSectionObserver.Observable = null; hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; + foreshoreProfileObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; @@ -135,6 +138,7 @@ assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + foreshoreProfileObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -160,6 +164,7 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); + foreshoreProfileObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs =================================================================== diff -u -r6678115bc8c06dcc0b676429038e1839b128d6f2 -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs (.../StabilityStoneCoverFailureMechanismViewTest.cs) (revision 6678115bc8c06dcc0b676429038e1839b128d6f2) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverFailureMechanismViewTest.cs (.../StabilityStoneCoverFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -448,6 +448,48 @@ } [Test] + public void UpdateObserver_ForeshoreProfileUpdate_MapDataUpdated() + { + // Setup + using (var view = new StabilityStoneCoverFailureMechanismView()) + { + IMapControl map = ((RingtoetsMapControl)view.Controls[0]).MapControl; + + var failureMechanism = new StabilityStoneCoverFailureMechanism(); + var failureMechanismContext = new StabilityStoneCoverFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + var foreshoreProfile = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + }); + failureMechanism.ForeshoreProfiles.AddRange(new[] + { + foreshoreProfile + }, "path"); + + view.Data = failureMechanismContext; + + MapData foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + var foreshoreProfileToUpdateFrom = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(2, 2), + new Point2D(3, 3) + }); + foreshoreProfile.CopyProperties(foreshoreProfileToUpdateFrom); + foreshoreProfile.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + + [Test] public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() { // Setup @@ -526,6 +568,10 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), + calculationMapData); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationB); // Call @@ -558,10 +604,16 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); + view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), + calculationMapData); + calculationA.InputParameters.ForeshoreProfile = foreshoreProfileB; // Call @@ -593,11 +645,16 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), + calculationMapData); + calculationA.Name = "new name"; // Call Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs =================================================================== diff -u -rf1f94637a6b45b394493bf16a078b317c02d329b -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision f1f94637a6b45b394493bf16a078b317c02d329b) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Views/WaveImpactAsphaltCoverFailureMechanismView.cs (.../WaveImpactAsphaltCoverFailureMechanismView.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -52,6 +52,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver calculationObserver; + private readonly RecursiveObserver foreshoreProfileObserver; private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; @@ -88,6 +89,7 @@ UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))); calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); mapDataCollection = new MapDataCollection(WaveImpactAsphaltCoverDataResources.WaveImpactAsphaltCoverFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -123,6 +125,7 @@ assessmentSectionObserver.Observable = null; hydraulicBoundaryDatabaseObserver.Observable = null; foreshoreProfilesObserver.Observable = null; + foreshoreProfileObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; @@ -135,6 +138,7 @@ assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; foreshoreProfilesObserver.Observable = data.WrappedData.ForeshoreProfiles; + foreshoreProfileObserver.Observable = data.WrappedData.ForeshoreProfiles; calculationInputObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationGroupObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; calculationObserver.Observable = data.WrappedData.WaveConditionsCalculationGroup; @@ -160,6 +164,7 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryDatabaseObserver.Dispose(); foreshoreProfilesObserver.Dispose(); + foreshoreProfileObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs =================================================================== diff -u -r6678115bc8c06dcc0b676429038e1839b128d6f2 -rcc16af254f77623b35c173044f937cebd3e442a2 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs (.../WaveImpactAsphaltCoverFailureMechanismViewTest.cs) (revision 6678115bc8c06dcc0b676429038e1839b128d6f2) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Views/WaveImpactAsphaltCoverFailureMechanismViewTest.cs (.../WaveImpactAsphaltCoverFailureMechanismViewTest.cs) (revision cc16af254f77623b35c173044f937cebd3e442a2) @@ -449,6 +449,48 @@ } [Test] + public void UpdateObserver_ForeshoreProfileUpdate_MapDataUpdated() + { + // Setup + using (var view = new WaveImpactAsphaltCoverFailureMechanismView()) + { + IMapControl map = ((RingtoetsMapControl)view.Controls[0]).MapControl; + + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var failureMechanismContext = new WaveImpactAsphaltCoverFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); + + var foreshoreProfile = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + }); + failureMechanism.ForeshoreProfiles.AddRange(new[] + { + foreshoreProfile + }, "path"); + + view.Data = failureMechanismContext; + + MapData foreshoreProfileData = map.Data.Collection.ElementAt(foreshoreProfilesIndex); + + // Precondition + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + + // Call + var foreshoreProfileToUpdateFrom = new TestForeshoreProfile("originalProfile ID", new[] + { + new Point2D(2, 2), + new Point2D(3, 3) + }); + foreshoreProfile.CopyProperties(foreshoreProfileToUpdateFrom); + foreshoreProfile.NotifyObservers(); + + // Assert + MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, foreshoreProfileData); + } + } + + [Test] public void UpdateObserver_ForeshoreProfilesUpdated_MapDataUpdated() { // Setup @@ -527,6 +569,9 @@ var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationB); // Call @@ -559,10 +604,14 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + // Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + calculationA.InputParameters.ForeshoreProfile = foreshoreProfileB; // Call @@ -594,11 +643,14 @@ HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; - + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculationA); view.Data = failureMechanismContext; var calculationMapData = (MapLineData) map.Data.Collection.ElementAt(calculationsIndex); + //Precondition + AssertCalculationsMapData(failureMechanism.Calculations.Cast(), calculationMapData); + calculationA.Name = "new name"; // Call