Index: Riskeer/Revetment/test/Riskeer.Revetment.Data.Test/WaveConditionsInputHelperTest.cs =================================================================== diff -u -r617d32a3464bc84a25c83839b0701f5898300829 -rb2f2e8ba95f187236c9b96a931116278fd17092b --- Riskeer/Revetment/test/Riskeer.Revetment.Data.Test/WaveConditionsInputHelperTest.cs (.../WaveConditionsInputHelperTest.cs) (revision 617d32a3464bc84a25c83839b0701f5898300829) +++ Riskeer/Revetment/test/Riskeer.Revetment.Data.Test/WaveConditionsInputHelperTest.cs (.../WaveConditionsInputHelperTest.cs) (revision b2f2e8ba95f187236c9b96a931116278fd17092b) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; @@ -194,14 +195,14 @@ Func getExpectedTargetProbability) { // Setup + var assessmentSection = new AssessmentSectionStub(); + var input = new TestWaveConditionsInput { WaterLevelType = waterLevelType, CalculationsTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01) }; - var assessmentSection = new AssessmentSectionStub(); - // Call double targetProbability = WaveConditionsInputHelper.GetTargetProbability(input, assessmentSection); @@ -250,6 +251,34 @@ Assert.AreEqual("WaterLevelType", exception.ParamName); } + [Test] + [TestCaseSource(nameof(GetAssessmentLevelConfigurations))] + public void GetAssessmentLevel_ValidInput_ReturnsExpectedValue(WaveConditionsInputWaterLevelType waterLevelType, + Func getExpectedAssessmentLevel) + { + // Setup + var assessmentSection = new AssessmentSectionStub(); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); + + assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] + { + hydraulicBoundaryLocation + }, true); + + var input = new TestWaveConditionsInput + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation, + WaterLevelType = waterLevelType, + CalculationsTargetProbability = assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities.First() + }; + + // Call + double assessmentLevel = WaveConditionsInputHelper.GetAssessmentLevel(input, assessmentSection); + + // Assert + Assert.AreEqual(getExpectedAssessmentLevel(input, assessmentSection), assessmentLevel); + } + private static IEnumerable GetTargetProbabilityConfigurations() { yield return new TestCaseData( @@ -265,5 +294,21 @@ WaveConditionsInputWaterLevelType.UserDefinedTargetProbability, (Func) ((input, assessmentSection) => input.CalculationsTargetProbability.TargetProbability)); } + + private static IEnumerable GetAssessmentLevelConfigurations() + { + yield return new TestCaseData( + WaveConditionsInputWaterLevelType.None, + (Func) ((input, assessmentSection) => double.NaN)); + yield return new TestCaseData( + WaveConditionsInputWaterLevelType.LowerLimit, + (Func) ((input, assessmentSection) => assessmentSection.WaterLevelCalculationsForLowerLimitNorm.First().Output.Result)); + yield return new TestCaseData( + WaveConditionsInputWaterLevelType.Signaling, + (Func) ((input, assessmentSection) => assessmentSection.WaterLevelCalculationsForSignalingNorm.First().Output.Result)); + yield return new TestCaseData( + WaveConditionsInputWaterLevelType.UserDefinedTargetProbability, + (Func) ((input, assessmentSection) => input.CalculationsTargetProbability.HydraulicBoundaryLocationCalculations.First().Output.Result)); + } } } \ No newline at end of file