Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r827cf33fbb55722d0888ed3a18cef230699fe803 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../ClosingStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 827cf33fbb55722d0888ed3a18cef230699fe803) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/TreeNodeInfos/ClosingStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../ClosingStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -470,7 +470,7 @@ failureMechanism.CalculationsGroup.Children.Add(new StructuresCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -514,11 +514,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -560,11 +560,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -621,15 +621,13 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - FilePath = validFilePath - }; - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; assessmentSection.Stub(a => a.Id).Return(string.Empty); assessmentSection.Stub(a => a.FailureMechanismContribution).Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase + { + FilePath = validFilePath + }); var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); @@ -707,14 +705,12 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = mocksRepository.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath - }; + }); - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; - var failureMechanismContext = new ClosingStructuresFailureMechanismContext(failureMechanism, assessmentSection); using (var treeViewControl = new TreeViewControl()) Index: Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSection/IAssessmentSection.cs =================================================================== diff -u -r091da501e5dd61cf05b94c4d4f075c1e73b3d950 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSection/IAssessmentSection.cs (.../IAssessmentSection.cs) (revision 091da501e5dd61cf05b94c4d4f075c1e73b3d950) +++ Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSection/IAssessmentSection.cs (.../IAssessmentSection.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -66,9 +66,9 @@ FailureMechanismContribution FailureMechanismContribution { get; } /// - /// Gets or sets the hydraulic boundary database. + /// Gets the hydraulic boundary database. /// - HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; set; } + HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; } /// /// Gets the data that represents the background for all geo-referenced data. Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -r5dabca97fffab41012aafa58da5bc4cd0192e947 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 5dabca97fffab41012aafa58da5bc4cd0192e947) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -191,6 +191,7 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); assessmentSection.Expect(section => section.NotifyObservers()); mocks.ReplayAll(); @@ -222,6 +223,7 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); assessmentSection.Expect(section => section.NotifyObservers()); mocks.ReplayAll(); @@ -255,6 +257,7 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); assessmentSection.Expect(section => section.NotifyObservers()).Repeat.Twice(); mocks.ReplayAll(); @@ -282,6 +285,7 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); assessmentSection.Expect(section => section.NotifyObservers()); mocks.ReplayAll(); @@ -308,6 +312,7 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); assessmentSection.Expect(section => section.NotifyObservers()).Repeat.Never(); mocks.ReplayAll(); @@ -331,7 +336,7 @@ Assert.AreEqual(loggedException.Message, expectedLog.Item1); }); Assert.IsFalse(importResult); - Assert.IsNull(assessmentSection.HydraulicBoundaryDatabase, "No HydraulicBoundaryDatabase object should be created when import from corrupt database."); + Assert.IsFalse(assessmentSection.HydraulicBoundaryDatabase.IsCoupled(), "No HydraulicBoundaryDatabase object should be created when import from corrupt database."); mocks.VerifyAll(); } Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs =================================================================== diff -u -r5dabca97fffab41012aafa58da5bc4cd0192e947 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision 5dabca97fffab41012aafa58da5bc4cd0192e947) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismViewTest.cs (.../GrassCoverErosionInwardsFailureMechanismViewTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -198,14 +198,6 @@ new Point2D(6.0, 4.0) }; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) - } - }; - var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { @@ -215,7 +207,13 @@ var assessmentSection = new ObservableTestAssessmentSectionStub { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase, + HydraulicBoundaryDatabase = + { + Locations = + { + new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) + } + }, ReferenceLine = referenceLine }; @@ -278,7 +276,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); AssertDikeProfiles(failureMechanism.DikeProfiles, mapDataList[dikeProfilesIndex]); MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.DikeProfiles.Select(dp => dp.ForeshoreProfile), mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); @@ -293,26 +291,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0) - } - }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase1 - }; - var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); view.Data = failureMechanismContext; @@ -332,14 +321,15 @@ mocks.ReplayAll(); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; + assessmentSection.HydraulicBoundaryDatabase.Locations.Clear(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); assessmentSection.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } @@ -353,19 +343,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase - }; - var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); view.Data = failureMechanismContext; @@ -378,79 +366,19 @@ mocks.ReplayAll(); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); - hydraulicBoundaryDatabase.NotifyObservers(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 3.0, 4.0)); + assessmentSection.HydraulicBoundaryDatabase.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } } [Test] - public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdated() - { - // Given - using (var view = new GrassCoverErosionInwardsFailureMechanismView()) - { - IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - - var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "old 1", 1, 2) - } - }; - var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "new 1", 1, 2) - } - }; - - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase - }; - - view.Data = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); - - MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); - - var mocks = new MockRepository(); - IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[referenceLineIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsStartPointIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsEndPointIndex].Expect(obs => obs.UpdateObserver()); - observers[hydraulicBoundaryLocationsIndex].Expect(obs => obs.UpdateObserver()).Repeat.Twice(); - observers[dikeProfilesIndex].Expect(obs => obs.UpdateObserver()); - observers[foreshoreProfilesIndex].Expect(obs => obs.UpdateObserver()); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); - mocks.ReplayAll(); - - // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - - // When - assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; - assessmentSection.NotifyObservers(); - newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); - newHydraulicBoundaryDatabase.NotifyObservers(); - - // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - - mocks.VerifyAll(); - } - } - - [Test] public void GivenViewWithReferenceLineData_WhenReferenceLineUpdatedAndNotified_ThenMapDataUpdated() { // Given Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r827cf33fbb55722d0888ed3a18cef230699fe803 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 827cf33fbb55722d0888ed3a18cef230699fe803) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -454,7 +454,7 @@ failureMechanism.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -491,11 +491,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -531,11 +531,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -601,7 +601,7 @@ failureMechanism.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -638,11 +638,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -678,11 +678,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -736,16 +736,15 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - FilePath = validFilePath - }; - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; assessmentSection.Stub(a => a.Id).Return(string.Empty); assessmentSection.Stub(a => a.FailureMechanismContribution) .Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase + { + FilePath = validFilePath + }); + var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); using (var treeViewControl = new TreeViewControl()) @@ -826,13 +825,12 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = mocksRepository.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath - }; + }); - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); using (var treeViewControl = new TreeViewControl()) Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r827cf33fbb55722d0888ed3a18cef230699fe803 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../HeightStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 827cf33fbb55722d0888ed3a18cef230699fe803) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../HeightStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -469,7 +469,7 @@ failureMechanism.CalculationsGroup.Children.Add(new StructuresCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -507,11 +507,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -548,11 +548,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -620,7 +620,7 @@ failureMechanism.CalculationsGroup.Children.Add(new StructuresCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -658,11 +658,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -699,11 +699,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -756,15 +756,13 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - FilePath = validFilePath - }; - var assessmentSection = mocksRepository.Stub(); assessmentSection.Stub(a => a.Id).Return(string.Empty); assessmentSection.Stub(a => a.FailureMechanismContribution).Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase + { + FilePath = validFilePath + }); var failureMechanismContext = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); @@ -842,14 +840,12 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = mocksRepository.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath - }; + }); - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; - var failureMechanismContext = new HeightStructuresFailureMechanismContext(failureMechanism, assessmentSection); using (var treeViewControl = new TreeViewControl()) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs =================================================================== diff -u -r091da501e5dd61cf05b94c4d4f075c1e73b3d950 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 091da501e5dd61cf05b94c4d4f075c1e73b3d950) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -83,9 +83,10 @@ Name = defaultWellKnownTileSource.GetDisplayName() }; + HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + Piping = new PipingFailureMechanism(); GrassCoverErosionInwards = new GrassCoverErosionInwardsFailureMechanism(); - MacroStabilityInwards = new MacroStabilityInwardsFailureMechanism(); MacrostabilityOutwards = new MacrostabilityOutwardsFailureMechanism(); Microstability = new MicrostabilityFailureMechanism(); @@ -225,7 +226,7 @@ public FailureMechanismContribution FailureMechanismContribution { get; } - public HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; set; } + public HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; } public BackgroundData BackgroundData { get; } Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -r6949918830314633db5cc8c16bb2188779fffc93 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 6949918830314633db5cc8c16bb2188779fffc93) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -516,7 +516,7 @@ CreateFileExporter = (context, filePath) => new HydraulicBoundaryLocationsExporter( context.WrappedData.HydraulicBoundaryDatabase.Locations, filePath, RingtoetsIntegrationPluginResources.DesignWaterLevel_Description, RingtoetsIntegrationPluginResources.WaveHeight_Description), - IsEnabled = context => context.WrappedData.HydraulicBoundaryDatabase != null, + IsEnabled = context => context.WrappedData.HydraulicBoundaryDatabase.IsCoupled(), FileFilterGenerator = new FileFilterGenerator(RingtoetsCommonIOResources.Shape_file_filter_Extension, RingtoetsCommonIOResources.Shape_file_filter_Description) }; @@ -654,9 +654,9 @@ { Text = hydraulicBoundaryDatabase => RingtoetsFormsResources.HydraulicBoundaryDatabase_DisplayName, Image = hydraulicBoundaryDatabase => RingtoetsCommonFormsResources.GenericInputOutputIcon, - ForeColor = context => context.WrappedData.HydraulicBoundaryDatabase == null - ? Color.FromKnownColor(KnownColor.GrayText) - : Color.FromKnownColor(KnownColor.ControlText), + ForeColor = context => context.WrappedData.HydraulicBoundaryDatabase.IsCoupled() + ? Color.FromKnownColor(KnownColor.ControlText) + : Color.FromKnownColor(KnownColor.GrayText), ChildNodeObjects = HydraulicBoundaryDatabaseChildNodeObjects, ContextMenuStrip = HydraulicBoundaryDatabaseContextMenuStrip }; @@ -1362,15 +1362,16 @@ private static object[] HydraulicBoundaryDatabaseChildNodeObjects(HydraulicBoundaryDatabaseContext nodeData) { - if (nodeData.WrappedData.HydraulicBoundaryDatabase == null) + if (nodeData.WrappedData.HydraulicBoundaryDatabase.IsCoupled()) { - return new object[0]; + return new object[] + { + new DesignWaterLevelLocationsContext(nodeData.WrappedData), + new WaveHeightLocationsContext(nodeData.WrappedData) + }; } - return new object[] - { - new DesignWaterLevelLocationsContext(nodeData.WrappedData), - new WaveHeightLocationsContext(nodeData.WrappedData) - }; + + return new object[0]; } private ContextMenuStrip DesignWaterLevelLocationsContextMenuStrip(DesignWaterLevelLocationsContext nodeData, object parentData, TreeViewControl treeViewControl) @@ -1509,11 +1510,11 @@ { HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; - bool isHydraulicBoundaryDatabaseSet = hydraulicBoundaryDatabase != null; - bool isClearConfirmationRequired = isHydraulicBoundaryDatabaseSet && !HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile); + bool isHydraulicBoundaryDatabaseCoupled = hydraulicBoundaryDatabase.IsCoupled(); + bool isClearConfirmationRequired = isHydraulicBoundaryDatabaseCoupled && !HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile); bool isClearConfirmationGiven = isClearConfirmationRequired && IsClearCalculationConfirmationGiven(); - if (isHydraulicBoundaryDatabaseSet && isClearConfirmationRequired && !isClearConfirmationGiven) + if (isHydraulicBoundaryDatabaseCoupled && isClearConfirmationRequired && !isClearConfirmationGiven) { return; } Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -rca0345432ea951a80e3e956a8d485840c0897e1d -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision ca0345432ea951a80e3e956a8d485840c0897e1d) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -114,6 +114,13 @@ Assert.AreEqual(composition, section.Composition); Assert.IsInstanceOf(section.FailureMechanismContribution); + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = section.HydraulicBoundaryDatabase; + Assert.IsNotNull(hydraulicBoundaryDatabase); + CollectionAssert.IsEmpty(hydraulicBoundaryDatabase.Locations); + Assert.IsNull(hydraulicBoundaryDatabase.FilePath); + Assert.IsNull(hydraulicBoundaryDatabase.Version); + Assert.IsFalse(hydraulicBoundaryDatabase.CanUsePreprocessor); + CollectionAssert.IsEmpty(section.Piping.StochasticSoilModels); CollectionAssert.IsEmpty(section.Piping.SurfaceLines); @@ -436,21 +443,6 @@ Assert.AreEqual(double.NaN, assessmentSection.MacroStabilityInwards.MacroStabilityInwardsProbabilityAssessmentInput.SectionLength); } - [Test] - public void HydraulicBoundaryDatabase_SetNewValue_GetNewValue() - { - // Setup - var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - - // Call - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; - - // Assert - Assert.AreSame(hydraulicBoundaryDatabase, assessmentSection.HydraulicBoundaryDatabase); - } - private IFailureMechanism[] GetExpectedContributingFailureMechanisms(AssessmentSection section) { return new IFailureMechanism[] Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -234,14 +234,6 @@ new Point2D(6.0, 4.0) }; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) - } - }; - var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { @@ -251,7 +243,13 @@ var assessmentSection = new ObservableTestAssessmentSectionStub { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase, + HydraulicBoundaryDatabase = + { + Locations = + { + new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) + } + }, ReferenceLine = referenceLine }; @@ -326,7 +324,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); AssertStochasticSoilModelsMapData(failureMechanism.StochasticSoilModels, mapDataList[stochasticSoilModelsIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } @@ -340,27 +338,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0), - new HydraulicBoundaryLocation(3, "test3", 2.3, 4.6) - } - }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase1 - }; - view.Data = new MacroStabilityInwardsFailureMechanismContext(new MacroStabilityInwardsFailureMechanism(), assessmentSection); var mocks = new MockRepository(); @@ -378,14 +366,15 @@ MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; + assessmentSection.HydraulicBoundaryDatabase.Locations.Clear(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); assessmentSection.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } } @@ -398,19 +387,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase - }; - view.Data = new MacroStabilityInwardsFailureMechanismContext(new MacroStabilityInwardsFailureMechanism(), assessmentSection); var mocks = new MockRepository(); @@ -421,78 +408,19 @@ MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); - hydraulicBoundaryDatabase.NotifyObservers(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); + assessmentSection.HydraulicBoundaryDatabase.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } } [Test] - public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdatedAndObserversNotified() - { - // Given - using (var view = new MacroStabilityInwardsFailureMechanismView()) - { - IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - - var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "old 1", 1, 2) - } - }; - var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "new 1", 1, 2) - } - }; - - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase - }; - - view.Data = new MacroStabilityInwardsFailureMechanismContext(new MacroStabilityInwardsFailureMechanism(), assessmentSection); - - var mocks = new MockRepository(); - IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[referenceLineIndex].Expect(obs => obs.UpdateObserver()); - observers[stochasticSoilModelsIndex].Expect(obs => obs.UpdateObserver()); - observers[surfaceLinesIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsStartPointIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsEndPointIndex].Expect(obs => obs.UpdateObserver()); - observers[hydraulicBoundaryLocationsIndex].Expect(obs => obs.UpdateObserver()).Repeat.Twice(); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); - mocks.ReplayAll(); - - MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); - - // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - - // When - assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; - assessmentSection.NotifyObservers(); - newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); - newHydraulicBoundaryDatabase.NotifyObservers(); - - // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - mocks.VerifyAll(); - } - } - - [Test] public void GivenViewWithReferenceLineData_WhenReferenceLineUpdatedAndNotified_ThenMapDataUpdated() { // Given Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs =================================================================== diff -u -rfcad48d7beb394e1ac15cfe4289a7381e05aa883 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision fcad48d7beb394e1ac15cfe4289a7381e05aa883) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -234,14 +234,6 @@ new Point2D(6.0, 4.0) }; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) - } - }; - var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { @@ -251,7 +243,13 @@ var assessmentSection = new ObservableTestAssessmentSectionStub { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase, + HydraulicBoundaryDatabase = + { + Locations = + { + new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) + } + }, ReferenceLine = referenceLine }; @@ -324,7 +322,7 @@ MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, mapDataList[hydraulicBoundaryLocationsIndex]); AssertStochasticSoilModelsMapData(failureMechanism.StochasticSoilModels, mapDataList[stochasticSoilModelsIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); } @@ -338,27 +336,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase1 = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var hydraulicBoundaryDatabase2 = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0), - new HydraulicBoundaryLocation(3, "test3", 2.3, 4.6) - } - }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase1 - }; - view.Data = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection); var mocks = new MockRepository(); @@ -376,14 +364,15 @@ MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase1.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase2; + assessmentSection.HydraulicBoundaryDatabase.Locations.Clear(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); assessmentSection.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase2.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } } @@ -396,19 +385,17 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = new ObservableTestAssessmentSectionStub { - Locations = + HydraulicBoundaryDatabase = { - new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + Locations = + { + new HydraulicBoundaryLocation(1, "test1", 1.0, 2.0) + } } }; - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = hydraulicBoundaryDatabase - }; - view.Data = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection); var mocks = new MockRepository(); @@ -419,78 +406,19 @@ MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); // When - hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); - hydraulicBoundaryDatabase.NotifyObservers(); + assessmentSection.HydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "test2", 2.0, 3.0)); + assessmentSection.HydraulicBoundaryDatabase.NotifyObservers(); // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(hydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection.HydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); mocks.VerifyAll(); } } [Test] - public void GivenAssessmentSectionWithHydraulicBoundaryDatabase_WhenNewDatabaseIsSetAndNotified_ThenMapDataUpdatedAndObserversNotified() - { - // Given - using (var view = new PipingFailureMechanismView()) - { - IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - - var currentHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "old 1", 1, 2) - } - }; - var newHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - Locations = - { - new HydraulicBoundaryLocation(1, "new 1", 1, 2) - } - }; - - var assessmentSection = new ObservableTestAssessmentSectionStub - { - HydraulicBoundaryDatabase = currentHydraulicBoundaryDatabase - }; - - view.Data = new PipingFailureMechanismContext(new PipingFailureMechanism(), assessmentSection); - - var mocks = new MockRepository(); - IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[referenceLineIndex].Expect(obs => obs.UpdateObserver()); - observers[stochasticSoilModelsIndex].Expect(obs => obs.UpdateObserver()); - observers[surfaceLinesIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsStartPointIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsEndPointIndex].Expect(obs => obs.UpdateObserver()); - observers[hydraulicBoundaryLocationsIndex].Expect(obs => obs.UpdateObserver()).Repeat.Twice(); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); - mocks.ReplayAll(); - - MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); - - // Precondition - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(currentHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - - // When - assessmentSection.HydraulicBoundaryDatabase = newHydraulicBoundaryDatabase; - assessmentSection.NotifyObservers(); - newHydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "new 2", 2, 3)); - newHydraulicBoundaryDatabase.NotifyObservers(); - - // Then - MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(newHydraulicBoundaryDatabase.Locations, hydraulicBoundaryLocationsMapData); - mocks.VerifyAll(); - } - } - - [Test] public void GivenViewWithReferenceLineData_WhenReferenceLineUpdatedAndNotified_ThenMapDataUpdated() { // Given Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r827cf33fbb55722d0888ed3a18cef230699fe803 -r44cf5bc0f292171637b0c91b74005effe4d2798c --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 827cf33fbb55722d0888ed3a18cef230699fe803) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision 44cf5bc0f292171637b0c91b74005effe4d2798c) @@ -501,7 +501,7 @@ failureMechanism.CalculationsGroup.Children.Add(new StructuresCalculation()); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -547,11 +547,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -595,11 +595,11 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath, Version = "1.0" - }; + }); var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); @@ -664,15 +664,13 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase - { - FilePath = validFilePath - }; - var assessmentSection = mocksRepository.Stub(); assessmentSection.Stub(a => a.Id).Return(string.Empty); assessmentSection.Stub(a => a.FailureMechanismContribution).Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase + { + FilePath = validFilePath + }); var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); @@ -756,14 +754,12 @@ string validFilePath = Path.Combine(testDataPath, "complete.sqlite"); - var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + var assessmentSection = mocksRepository.Stub(); + assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase { FilePath = validFilePath - }; + }); - var assessmentSection = mocksRepository.Stub(); - assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; - var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); using (var plugin = new StabilityPointStructuresPlugin())