Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Service/MacroStabilityInwardsCalculationService.cs =================================================================== diff -u -r25a925a4c8abc38a558698fd67efecaede992b2d -rd3d4f64d32720e6ac2c582b38e4b4e07398be1ae --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Service/MacroStabilityInwardsCalculationService.cs (.../MacroStabilityInwardsCalculationService.cs) (revision 25a925a4c8abc38a558698fd67efecaede992b2d) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Service/MacroStabilityInwardsCalculationService.cs (.../MacroStabilityInwardsCalculationService.cs) (revision d3d4f64d32720e6ac2c582b38e4b4e07398be1ae) @@ -81,7 +81,8 @@ try { - waternetExtremeKernelMessages = ValidateWaternet(() => WaternetCalculationService.ValidateExtreme(calculation.InputParameters, normativeAssessmentLevel), + waternetExtremeKernelMessages = ValidateWaternet(() => WaternetCalculationService.ValidateExtreme( + calculation.InputParameters, GetEffectiveAssessmentLevel(calculation.InputParameters, normativeAssessmentLevel)), Resources.MacroStabilityInwardsCalculationService_Validate_Waternet_extreme_validation_started); waternetDailyKernelMessages = ValidateWaternet(() => WaternetCalculationService.ValidateDaily(calculation.InputParameters), Resources.MacroStabilityInwardsCalculationService_Validate_Waternet_daily_validation_started); @@ -151,7 +152,7 @@ { var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(Resources.MacroStabilityInwardsCalculationService_Calculate_Kernel_provides_messages); - + foreach (MacroStabilityInwardsKernelMessage kernelMessage in e.KernelMessages) { stringBuilder.AppendLine(string.Format(Resources.MacroStabilityInwardsCalculationService_Calculate_LogMessageType_0_LogMessage_1, kernelMessage.Type, kernelMessage.Message)); @@ -227,9 +228,7 @@ private static UpliftVanCalculatorInput CreateInputFromData(MacroStabilityInwardsInput inputParameters, RoundedDouble normativeAssessmentLevel) { - RoundedDouble effectiveAssessmentLevel = inputParameters.UseAssessmentLevelManualInput - ? inputParameters.AssessmentLevel - : normativeAssessmentLevel; + RoundedDouble effectiveAssessmentLevel = GetEffectiveAssessmentLevel(inputParameters, normativeAssessmentLevel); return new UpliftVanCalculatorInput( new UpliftVanCalculatorInput.ConstructionProperties @@ -266,6 +265,13 @@ }); } + private static RoundedDouble GetEffectiveAssessmentLevel(MacroStabilityInwardsInput inputParameters, RoundedDouble normativeAssessmentLevel) + { + return inputParameters.UseAssessmentLevelManualInput + ? inputParameters.AssessmentLevel + : normativeAssessmentLevel; + } + private static string CreateAggregatedLogMessage(string baseMessage, UpliftVanCalculatorResult macroStabilityInwardsResult) { return baseMessage Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs =================================================================== diff -u -r527392890a626324db9ef8d31ca42c94fe7f4125 -rd3d4f64d32720e6ac2c582b38e4b4e07398be1ae --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs (.../MacroStabilityInwardsCalculationServiceTest.cs) (revision 527392890a626324db9ef8d31ca42c94fe7f4125) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Service.Test/MacroStabilityInwardsCalculationServiceTest.cs (.../MacroStabilityInwardsCalculationServiceTest.cs) (revision d3d4f64d32720e6ac2c582b38e4b4e07398be1ae) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2019. All rights reserved. +// Copyright (C) Stichting Deltares 2019. All rights reserved. // // This file is part of Riskeer. // @@ -328,6 +328,36 @@ } [Test] + [TestCase(true)] + [TestCase(false)] + public void Validate_CompleteInput_SetsInputOnCalculator(bool useAssessmentLevelManualInput) + { + // Setup + RoundedDouble normativeAssessmentLevel = AssessmentSectionTestHelper.GetTestAssessmentLevel(); + MacroStabilityInwardsInput input = testCalculation.InputParameters; + + input.AssessmentLevel = (RoundedDouble) 2.2; + + input.UseAssessmentLevelManualInput = useAssessmentLevelManualInput; + using (new MacroStabilityInwardsCalculatorFactoryConfig()) + { + // Call + MacroStabilityInwardsCalculationService.Validate(testCalculation, normativeAssessmentLevel); + + // Assert + RoundedDouble expectedAssessmentLevel = useAssessmentLevelManualInput + ? testCalculation.InputParameters.AssessmentLevel + : normativeAssessmentLevel; + + var factory = (TestMacroStabilityInwardsCalculatorFactory) MacroStabilityInwardsCalculatorFactory.Instance; + CalculatorInputAssert.AssertExtremeInput(input, factory.LastCreatedWaternetExtremeCalculator.Input, expectedAssessmentLevel); + CalculatorInputAssert.AssertDailyInput(input, factory.LastCreatedWaternetDailyCalculator.Input); + + AssertInput(testCalculation.InputParameters, factory, expectedAssessmentLevel); + } + } + + [Test] public void Calculate_CalculationNull_ThrowArgumentNullException() { // Call