Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs =================================================================== diff -u -r6c64351622c287ec519f5d8b0e7ae002b6790d1b -rdb0666ee9a8e59bbfbe5c34c68389f6be442d028 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs (.../StabilityStoneCoverWaveConditionsCalculationServiceTest.cs) (revision 6c64351622c287ec519f5d8b0e7ae002b6790d1b) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs (.../StabilityStoneCoverWaveConditionsCalculationServiceTest.cs) (revision db0666ee9a8e59bbfbe5c34c68389f6be442d028) @@ -28,6 +28,7 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; @@ -440,15 +441,17 @@ public void Calculate_CalculationWithForeshoreAndDoesNotUseBreakWaterAndHasInvalidBreakWaterHeight_PerformCalculationAndLogStartAndEnd(double breakWaterHeight) { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, breakWaterHeight)); calculation.InputParameters.UseBreakWater = false; + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); int nrOfCalculators = waterLevels.Length * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); @@ -506,12 +509,13 @@ public void Calculate_CalculationWithValidInputConditionsAndValidForeshore_LogStartAndEnd(CalculationType calculationType) { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); int nrOfCalculators = waterLevels.Length * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); @@ -580,12 +584,13 @@ public void Calculate_Always_SendsProgressNotifications() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); int nrOfCalculators = waterLevels.Length * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); @@ -621,15 +626,16 @@ public void Calculate_Always_InputPropertiesCorrectlySendToCalculator(BreakWaterType breakWaterType) { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + calculation.InputParameters.BreakWater.Type = breakWaterType; var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); int nrOfCalculators = waterLevels.Length * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator).Repeat.Times(nrOfCalculators); @@ -693,13 +699,14 @@ public void Calculate_Canceled_HasNoOutput() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -724,14 +731,15 @@ public void Calculate_CancelCalculationWithValidInput_CancelsCalculatorAndHasNullOutput() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -755,12 +763,13 @@ public void Calculate_WithValidInput_SetsOutput() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository); int nrOfCalculators = GetWaterLevels(calculation, assessmentSection).Count() * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); mockRepository.ReplayAll(); @@ -805,11 +814,10 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculatorThatFails).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mockRepository); mockRepository.ReplayAll(); - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -899,11 +907,10 @@ .Return(new TestWaveConditionsCosineCalculator()) .Repeat .Times(5); - - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); mockRepository.ReplayAll(); - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1004,11 +1011,10 @@ .Return(new TestWaveConditionsCosineCalculator()) .Repeat .Twice(); - - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); mockRepository.ReplayAll(); - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1081,12 +1087,13 @@ public void Calculate_HydraulicBoundaryDatabaseWithCanUsePreprocessorFalse_ExpectedPreprocessorDirectorySetToCalculators() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository, validFilePath); int nrOfCalculators = GetWaterLevels(calculation, assessmentSection).Count() * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); mockRepository.ReplayAll(); @@ -1108,19 +1115,19 @@ public void Calculate_HydraulicBoundaryDatabaseWithUsePreprocessorTrue_ExpectedPreprocessorDirectorySetToCalculators() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = validPreprocessorDirectory; + + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository, validFilePath); int nrOfCalculators = GetWaterLevels(calculation, assessmentSection).Count() * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, validPreprocessorDirectory)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); - - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = validPreprocessorDirectory; - mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -1140,19 +1147,19 @@ public void Calculate_HydraulicBoundaryDatabaseWithUsePreprocessorFalse_ExpectedPreprocessorDirectorySetToCalculators() { // Setup - StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; + assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; + + StabilityStoneCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var stabilityStoneCoverFailureMechanism = new StabilityStoneCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(stabilityStoneCoverFailureMechanism, mockRepository, validFilePath); int nrOfCalculators = GetWaterLevels(calculation, assessmentSection).Count() * 2; calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(nrOfCalculators); - - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; - assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; - mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -1168,6 +1175,36 @@ mockRepository.VerifyAll(); } + private static IAssessmentSection CreateAssessmentSectionWithHydraulicBoundaryOutput() + { + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1300001, string.Empty, 0, 0); + + var assessmentSection = new ObservableTestAssessmentSectionStub + { + FailureMechanismContribution = + { + 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(HydraulicBoundaryLocation hydraulicBoundaryLocation) { return new StabilityStoneCoverWaveConditionsCalculation Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverWaveConditionsCalculationServiceTest.cs =================================================================== diff -u -r6c64351622c287ec519f5d8b0e7ae002b6790d1b -rdb0666ee9a8e59bbfbe5c34c68389f6be442d028 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverWaveConditionsCalculationServiceTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationServiceTest.cs) (revision 6c64351622c287ec519f5d8b0e7ae002b6790d1b) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverWaveConditionsCalculationServiceTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationServiceTest.cs) (revision db0666ee9a8e59bbfbe5c34c68389f6be442d028) @@ -28,6 +28,7 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; @@ -443,7 +444,9 @@ public void Calculate_CalculationWithForeshoreAndDoesNotUseBreakWaterAndHasInvalidBreakWaterHeight_PerformCalculationAndLogStartAndEnd(double breakWaterHeight) { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, breakWaterHeight)); calculation.InputParameters.UseBreakWater = false; @@ -452,7 +455,6 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Twice(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -496,13 +498,14 @@ public void Run_CalculationWithValidInputAndValidForeshore_LogStartAndEnd(CalculationType calculationType) { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Twice(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); switch (calculationType) @@ -561,7 +564,9 @@ public void Calculate_Always_InputPropertiesCorrectlySendToCalculator(BreakWaterType breakWaterType) { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + calculation.InputParameters.BreakWater.Type = breakWaterType; var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); @@ -571,7 +576,6 @@ var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -615,12 +619,13 @@ public void Calculate_Canceled_HasNoOutput() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -646,15 +651,16 @@ public void Calculate_CancelCalculationWithValidInput_CancelsCalculatorAndHasNullOutput() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetDefaultCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -681,13 +687,14 @@ public void Calculate_WithValidInput_SetsOutput() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(new TestWaveConditionsCosineCalculator()).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -733,10 +740,10 @@ .Return(calculatorThatFails) .Repeat .Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); mockRepository.ReplayAll(); - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -826,11 +833,10 @@ .Return(new TestWaveConditionsCosineCalculator()) .Repeat .Twice(); - - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mockRepository); mockRepository.ReplayAll(); - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -887,15 +893,16 @@ public void Calculate_HydraulicBoundaryDatabaseWithCanUsePreprocessorFalse_ExpectedPreprocessorDirectorySetToCalculator() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository, validFilePath); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -916,20 +923,20 @@ public void Calculate_HydraulicBoundaryDatabaseWithUsePreprocessorTrue_ExpectedPreprocessorDirectorySetToCalculator() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = validPreprocessorDirectory; + + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, validPreprocessorDirectory)).Return(calculator).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository, validFilePath); - - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = validPreprocessorDirectory; - mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -950,20 +957,20 @@ public void Calculate_HydraulicBoundaryDatabaseWithUsePreprocessorFalse_ExpectedPreprocessorDirectorySetToCalculator() { // Setup - WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(); + IAssessmentSection assessmentSection = CreateAssessmentSectionWithHydraulicBoundaryOutput(); + assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; + assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; + assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; + + WaveImpactAsphaltCoverWaveConditionsCalculation calculation = GetValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); + var waveImpactAsphaltCoverFailureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var calculator = new TestWaveConditionsCosineCalculator(); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(testDataPath, string.Empty)).Return(calculator).Repeat.Times(3); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(waveImpactAsphaltCoverFailureMechanism, mockRepository, validFilePath); - - assessmentSection.HydraulicBoundaryDatabase.CanUsePreprocessor = true; - assessmentSection.HydraulicBoundaryDatabase.UsePreprocessor = false; - assessmentSection.HydraulicBoundaryDatabase.PreprocessorDirectory = "InvalidPreprocessorDirectory"; - mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) @@ -980,6 +987,36 @@ mockRepository.VerifyAll(); } + private static IAssessmentSection CreateAssessmentSectionWithHydraulicBoundaryOutput() + { + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1300001, string.Empty, 0, 0); + + var assessmentSection = new ObservableTestAssessmentSectionStub + { + FailureMechanismContribution = + { + NormativeNorm = NormType.LowerLimit + }, + HydraulicBoundaryDatabase = + { + FilePath = validFilePath, + Locations = + { + hydraulicBoundaryLocation + } + } + }; + + assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] + { + hydraulicBoundaryLocation + }); + + assessmentSection.WaterLevelCalculationsForLowerLimitNorm.First().Output = new TestHydraulicBoundaryLocationOutput(9.3); + + return assessmentSection; + } + private static WaveImpactAsphaltCoverWaveConditionsCalculation GetValidCalculation(HydraulicBoundaryLocation hydraulicBoundaryLocation) { return new WaveImpactAsphaltCoverWaveConditionsCalculation