Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/TreeNodeInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r16aaa945951f39aae43afb02993721a4a4a2b671 -r6f33b44599df032ecae3342b0aacd606a9e87c1f --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/TreeNodeInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 16aaa945951f39aae43afb02993721a4a4a2b671) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/TreeNodeInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 6f33b44599df032ecae3342b0aacd606a9e87c1f) @@ -39,6 +39,7 @@ using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms; @@ -81,6 +82,8 @@ private StabilityStoneCoverPlugin plugin; private TreeNodeInfo info; + private readonly string validFilePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, Path.Combine("HydraRingCalculation", "HRD ijsselmeer.sqlite")); + [Test] public void Initialized_Always_ExpectedPropertiesSet() { @@ -817,18 +820,15 @@ public void ContextMenuStrip_TwoCalculationsClickOnValidateAllInGroup_ValidationMessagesLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - var failureMechanism = new StabilityStoneCoverFailureMechanism(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); var calculationA = new StabilityStoneCoverWaveConditionsCalculation { Name = "A", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -843,7 +843,7 @@ Name = "B", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -898,14 +898,19 @@ public void ValidateAllViaContextMenuStrip_HydraulicBoundaryDatabaseWithCanUsePreprocessorFalse_NoValidationErrorsLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + var failureMechanism = new StabilityStoneCoverFailureMechanism + { + Contribution = 5 + }; + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + var calculation = new StabilityStoneCoverWaveConditionsCalculation { Name = "A", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -918,15 +923,8 @@ var group = new CalculationGroup(); group.Children.Add(calculation); - var failureMechanism = new StabilityStoneCoverFailureMechanism - { - Contribution = 5 - }; failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); - var nodeData = new StabilityStoneCoverWaveConditionsCalculationGroupContext(group, failureMechanism.WaveConditionsCalculationGroup, failureMechanism, @@ -965,14 +963,19 @@ public void ValidateAllViaContextMenuStrip_HydraulicBoundaryDatabaseWithUsePreprocessorFalse_NoValidationErrorsLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + var failureMechanism = new StabilityStoneCoverFailureMechanism + { + Contribution = 5 + }; + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + var calculation = new StabilityStoneCoverWaveConditionsCalculation { Name = "A", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -985,15 +988,8 @@ var group = new CalculationGroup(); group.Children.Add(calculation); - var failureMechanism = new StabilityStoneCoverFailureMechanism - { - Contribution = 5 - }; failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; @@ -1036,14 +1032,19 @@ public void ValidateAllViaContextMenuStrip_HydraulicBoundaryDatabaseWithUsePreprocessorTrue_NoValidationErrorsLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + var failureMechanism = new StabilityStoneCoverFailureMechanism + { + Contribution = 5 + }; + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + var calculation = new StabilityStoneCoverWaveConditionsCalculation { Name = "A", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -1056,15 +1057,8 @@ var group = new CalculationGroup(); group.Children.Add(calculation); - var failureMechanism = new StabilityStoneCoverFailureMechanism - { - Contribution = 5 - }; failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = TestHelper.GetScratchPadPath(); @@ -1107,14 +1101,19 @@ public void ValidateAllViaContextMenuStrip_HydraulicBoundaryDatabaseWithUsePreprocessorTrue_ValidationErrorsLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); + var failureMechanism = new StabilityStoneCoverFailureMechanism + { + Contribution = 5 + }; + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + var calculation = new StabilityStoneCoverWaveConditionsCalculation { Name = "A", InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(), LowerBoundaryRevetment = (RoundedDouble) 1.0, UpperBoundaryRevetment = (RoundedDouble) 10.0, StepSize = WaveConditionsInputStepSize.One, @@ -1127,15 +1126,8 @@ var group = new CalculationGroup(); group.Children.Add(calculation); - var failureMechanism = new StabilityStoneCoverFailureMechanism - { - Contribution = 5 - }; failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; @@ -1179,21 +1171,18 @@ public void ContextMenuStrip_TwoCalculationsClickOnCalculateAllInGroup_MessagesLogged() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - var failureMechanism = new StabilityStoneCoverFailureMechanism(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); var observerA = mocks.StrictMock(); observerA.Expect(o => o.UpdateObserver()); var observerB = mocks.StrictMock(); observerB.Expect(o => o.UpdateObserver()); var group = new CalculationGroup(); - StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(); + StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationA.Name = "A"; - StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(); + StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationB.Name = "B"; calculationA.Attach(observerA); calculationB.Attach(observerB); @@ -1225,7 +1214,7 @@ gui.Stub(g => g.MainWindow).Return(mainWindow); var calculatorFactory = mocks.Stub(); - calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(hrdPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()); + calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(Path.GetDirectoryName(validFilePath), string.Empty)).Return(new TestWaveConditionsCosineCalculator()); mocks.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -1260,15 +1249,13 @@ public void ContextMenuStrip_NoCalculations_ClearAllOutputItemDisabled() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - var group = new CalculationGroup(); var failureMechanism = new StabilityStoneCoverFailureMechanism(); failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); + failureMechanism, mocks, validFilePath); var nodeData = new StabilityStoneCoverWaveConditionsCalculationGroupContext(group, failureMechanism.WaveConditionsCalculationGroup, @@ -1307,16 +1294,14 @@ public void ContextMenuStrip_TwoCalculationsWithoutOutput_ClearAllOutputItemDisabled() { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - var failureMechanism = new StabilityStoneCoverFailureMechanism(); IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); + failureMechanism, mocks, validFilePath); var group = new CalculationGroup(); - StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(); - StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(); + StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); group.Children.Add(calculationA); group.Children.Add(calculationB); @@ -1340,7 +1325,7 @@ gui.Stub(g => g.MainWindow).Return(mainWindow); var calculatorFactory = mocks.Stub(); - calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(hrdPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()); + calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(Path.GetDirectoryName(validFilePath), string.Empty)).Return(new TestWaveConditionsCosineCalculator()); mocks.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -1361,11 +1346,9 @@ public void ContextMenuStrip_TwoCalculationsWithOutputClickOnClearAllOutput_OutputRemovedForCalculationsAfterConfirmation(bool confirm) { // Setup - string hrdPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); - var failureMechanism = new StabilityStoneCoverFailureMechanism(); IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, Path.Combine(hrdPath, "HRD ijsselmeer.sqlite")); + failureMechanism, mocks, validFilePath); var observerA = mocks.StrictMock(); var observerB = mocks.StrictMock(); @@ -1376,11 +1359,11 @@ } var group = new CalculationGroup(); - StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(); + StabilityStoneCoverWaveConditionsCalculation calculationA = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationA.Output = new StabilityStoneCoverWaveConditionsOutput( Enumerable.Empty(), Enumerable.Empty()); - StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(); + StabilityStoneCoverWaveConditionsCalculation calculationB = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculationB.Output = new StabilityStoneCoverWaveConditionsOutput( Enumerable.Empty(), Enumerable.Empty()); @@ -1422,7 +1405,7 @@ gui.Stub(g => g.MainWindow).Return(mainWindow); var calculatorFactory = mocks.Stub(); - calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(hrdPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()); + calculatorFactory.Stub(cf => cf.CreateWaveConditionsCosineCalculator(Path.GetDirectoryName(validFilePath), string.Empty)).Return(new TestWaveConditionsCosineCalculator()); mocks.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -1883,24 +1866,43 @@ base.TearDown(); } - private static TestHydraulicBoundaryLocation CreateHydraulicBoundaryLocationWithNormativeOutput() + private IAssessmentSection CreateAssessmentSectionWithHydraulicBoundaryOutput() { - return new TestHydraulicBoundaryLocation + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1300001, string.Empty, 0, 0); + + var assessmentSection = new AssessmentSectionStub { - DesignWaterLevelCalculation3 = + FailureMechanismContribution = { - Output = new TestHydraulicBoundaryLocationOutput(12) + NormativeNorm = NormType.LowerLimit + }, + HydraulicBoundaryDatabase = + { + FilePath = validFilePath, + Locations = + { + hydraulicBoundaryLocation + } } }; + + assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] + { + hydraulicBoundaryLocation + }); + + assessmentSection.WaterLevelCalculationsForLowerLimitNorm.First().Output = new TestHydraulicBoundaryLocationOutput(9.3); + + return assessmentSection; } - private static StabilityStoneCoverWaveConditionsCalculation GetValidCalculation() + private static StabilityStoneCoverWaveConditionsCalculation GetValidCalculation(HydraulicBoundaryLocation hydraulicBoundaryLocation) { return new StabilityStoneCoverWaveConditionsCalculation { InputParameters = { - HydraulicBoundaryLocation = CreateHydraulicBoundaryLocationWithNormativeOutput(), + HydraulicBoundaryLocation = hydraulicBoundaryLocation, ForeshoreProfile = new TestForeshoreProfile(true), UseForeshore = true, UseBreakWater = true,