Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs =================================================================== diff -u -refb5a7db973f4a0e5b5f0532a594d7fa14159f41 -r9a978c6ff273704a01a2e4189484a5a59b0a5363 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs (.../AssemblyResultPerSectionMapView.cs) (revision efb5a7db973f4a0e5b5f0532a594d7fa14159f41) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs (.../AssemblyResultPerSectionMapView.cs) (revision 9a978c6ff273704a01a2e4189484a5a59b0a5363) @@ -45,7 +45,6 @@ private readonly MapPointData hydraulicBoundaryLocationsMapData; private Observer assessmentSectionObserver; - private Observer referenceLineObserver; private Observer hydraulicBoundaryLocationsObserver; private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; @@ -109,7 +108,6 @@ if (disposing) { assessmentSectionObserver.Dispose(); - referenceLineObserver.Dispose(); waterLevelCalculationsForFactorizedSignalingNormObserver.Dispose(); waterLevelCalculationsForSignalingNormObserver.Dispose(); waterLevelCalculationsForLowerLimitNormObserver.Dispose(); @@ -128,13 +126,8 @@ private void CreateObservers() { - referenceLineObserver = new Observer(UpdateReferenceLineMapData) + assessmentSectionObserver = new Observer(UpdateAssessmentSectionData) { - Observable = AssessmentSection - }; - - assessmentSectionObserver = new Observer(UpdateAssemblyResultsMapData) - { Observable = new AssessmentSectionResultObserver(AssessmentSection) }; @@ -163,16 +156,17 @@ private void SetAllMapDataFeatures() { - if (AssessmentSection.ReferenceLine == null) - { - return; - } - SetReferenceLineMapData(); SetHydraulicBoundaryLocationsMapData(); SetAssemblyResultsMapData(); } + private void UpdateAssessmentSectionData() + { + UpdateAssemblyResultsMapData(); + UpdateReferenceLineMapData(); + } + #region AssemblyResults MapData private void UpdateAssemblyResultsMapData() Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs =================================================================== diff -u -ra199966cb016dd5596430ada947e252d5b6b62e7 -r9a978c6ff273704a01a2e4189484a5a59b0a5363 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs (.../AssemblyResultPerSectionMapViewTest.cs) (revision a199966cb016dd5596430ada947e252d5b6b62e7) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs (.../AssemblyResultPerSectionMapViewTest.cs) (revision 9a978c6ff273704a01a2e4189484a5a59b0a5363) @@ -130,12 +130,7 @@ // Setup var random = new Random(21); - AssessmentSection assessmentSection = CreateAssessmentSection(); - assessmentSection.ReferenceLine.SetGeometry(new[] - { - new Point2D(1.0, 2.0), - new Point2D(2.0, 1.0) - }); + AssessmentSection assessmentSection = CreateAssessmentSectionWithReferenceLine(); assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) @@ -254,23 +249,44 @@ } [Test] - public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() + public void UpdateObserver_AssessmentSectionUpdated_MapDataUpdated() { // Setup - var referenceLine = new ReferenceLine(); - referenceLine.SetGeometry(new[] - { - new Point2D(1.0, 2.0), - new Point2D(2.0, 1.0) - }); + AssessmentSection assessmentSection = CreateAssessmentSectionWithReferenceLine(); - var assessmentSection = new AssessmentSection(new Random(21).NextEnumValue()); - assessmentSection.ReferenceLine.SetGeometry(new[] + using (var view = new AssemblyResultPerSectionMapView(assessmentSection)) { - new Point2D(1.0, 2.0), - new Point2D(2.0, 1.0) - }); + IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; + var mocks = new MockRepository(); + IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); + observers[referenceLineIndex].Expect(obs => obs.UpdateObserver()); + observers[assemblyResultsIndex].Expect(obs => obs.UpdateObserver()); + mocks.ReplayAll(); + + var referenceLineMapData = (MapLineData)map.Data.Collection.ElementAt(referenceLineIndex); + + // Precondition + MapFeaturesTestHelper.AssertReferenceLineMetaData(assessmentSection.ReferenceLine, assessmentSection, referenceLineMapData.Features); + AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData); + + // Call + assessmentSection.Name = "New name"; + assessmentSection.NotifyObservers(); + + // Assert + MapFeaturesTestHelper.AssertReferenceLineMetaData(assessmentSection.ReferenceLine, assessmentSection, referenceLineMapData.Features); + mocks.VerifyAll(); + } + } + + [Test] + public void UpdateObserver_ReferenceLineUpdated_MapDataUpdated() + { + // Setup + AssessmentSection assessmentSection = CreateAssessmentSectionWithReferenceLine(); + ReferenceLine referenceLine = assessmentSection.ReferenceLine; + using (var view = new AssemblyResultPerSectionMapView(assessmentSection)) { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; @@ -287,12 +303,12 @@ AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData); // Call - assessmentSection.ReferenceLine.SetGeometry(new[] + referenceLine.SetGeometry(new[] { new Point2D(2.0, 5.0), new Point2D(4.0, 3.0) }); - assessmentSection.NotifyObservers(); + referenceLine.NotifyObservers(); // Assert AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData); @@ -324,6 +340,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, mapData.Collection); + observers[referenceLineIndex].Expect(obs => obs.UpdateObserver()); observers[assemblyResultsIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll();