Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/AssessmentSection/AssessmentSectionExtensionsTest.cs =================================================================== diff -u -r9bb285c6eb5b2ed43bf4293caa51baa5175b7080 -rc7bcefdb8bb20a28392fdb9eaf8506bb52d680c7 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/AssessmentSection/AssessmentSectionExtensionsTest.cs (.../AssessmentSectionExtensionsTest.cs) (revision 9bb285c6eb5b2ed43bf4293caa51baa5175b7080) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/AssessmentSection/AssessmentSectionExtensionsTest.cs (.../AssessmentSectionExtensionsTest.cs) (revision c7bcefdb8bb20a28392fdb9eaf8506bb52d680c7) @@ -20,13 +20,15 @@ // All rights reserved. using System; +using System.Collections; using System.ComponentModel; using System.Linq; using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; namespace Ringtoets.Common.Data.Test.AssessmentSection @@ -65,46 +67,6 @@ } [Test] - public void GetNormativeAssessmentLevel_HydraulicBoundaryLocationWithOutputAndNormTypeSignaling_ReturnsCorrespondingAssessmentLevel() - { - // Setup - var assessmentSection = new AssessmentSectionStub(); - var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); - - assessmentSection.FailureMechanismContribution.NormativeNorm = NormType.Signaling; - assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] - { - hydraulicBoundaryLocation - }, true); - - // Call - RoundedDouble normativeAssessmentLevel = assessmentSection.GetNormativeAssessmentLevel(hydraulicBoundaryLocation); - - // Assert - Assert.AreEqual(assessmentSection.WaterLevelCalculationsForSignalingNorm.ElementAt(0).Output.Result, normativeAssessmentLevel); - } - - [Test] - public void GetNormativeAssessmentLevel_HydraulicBoundaryLocationWithOutputAndNormTypeLowerLimit_ReturnsCorrespondingAssessmentLevel() - { - // Setup - var assessmentSection = new AssessmentSectionStub(); - var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); - - assessmentSection.FailureMechanismContribution.NormativeNorm = NormType.LowerLimit; - assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] - { - hydraulicBoundaryLocation - }, true); - - // Call - RoundedDouble normativeAssessmentLevel = assessmentSection.GetNormativeAssessmentLevel(hydraulicBoundaryLocation); - - // Assert - Assert.AreEqual(assessmentSection.WaterLevelCalculationsForLowerLimitNorm.ElementAt(0).Output.Result, normativeAssessmentLevel); - } - - [Test] public void GetNormativeAssessmentLevel_HydraulicBoundaryLocationNull_ReturnsNaN() { // Setup @@ -153,6 +115,24 @@ } [Test] + [TestCaseSource(nameof(DifferentNormTypes))] + public void GetNormativeAssessmentLevel_HydraulicBoundaryLocationWithOutput_ReturnsCorrespondingAssessmentLevel( + IAssessmentSection assessmentSection, + HydraulicBoundaryLocation hydraulicBoundaryLocation, + NormType normType, + RoundedDouble expectedNormativeAssessmentLevel) + { + // Setup + assessmentSection.FailureMechanismContribution.NormativeNorm = normType; + + // Call + RoundedDouble normativeAssessmentLevel = assessmentSection.GetNormativeAssessmentLevel(hydraulicBoundaryLocation); + + // Assert + Assert.AreEqual(expectedNormativeAssessmentLevel, normativeAssessmentLevel); + } + + [Test] public void GetAssessmentLevel_AssessmentSectionNull_ThrowsArgumentNullException() { // Call @@ -228,5 +208,30 @@ // Assert Assert.IsNaN(assessmentLevel); } + + private static IEnumerable DifferentNormTypes() + { + var assessmentSection = new AssessmentSectionStub(); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); + + assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] + { + hydraulicBoundaryLocation + }, true); + + yield return new TestCaseData( + assessmentSection, + hydraulicBoundaryLocation, + NormType.Signaling, + assessmentSection.WaterLevelCalculationsForSignalingNorm.ElementAt(0).Output.Result + ).SetName("SignalingNorm"); + + yield return new TestCaseData( + assessmentSection, + hydraulicBoundaryLocation, + NormType.LowerLimit, + assessmentSection.WaterLevelCalculationsForLowerLimitNorm.ElementAt(0).Output.Result + ).SetName("LowerLimitNorm"); + } } } \ No newline at end of file