Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs =================================================================== diff -u -rb2c5659b0656ae32b98944b07d43ae26e377188c -rff7d35236a40e27f08a25a0d39a958ba9d22331f --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision b2c5659b0656ae32b98944b07d43ae26e377188c) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision ff7d35236a40e27f08a25a0d39a958ba9d22331f) @@ -261,6 +261,41 @@ } /// + /// Creates a based on the given . + /// + /// The tailor made assessment result to create the result for. + /// The created tailor made calculation result. + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid but unsupported . + public static TailorMadeCalculationResult CreateTailorMadeCalculationResult(TailorMadeAssessmentResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentResultType.None: + return TailorMadeCalculationResult.None; + case TailorMadeAssessmentResultType.ProbabilityNegligible: + return TailorMadeCalculationResult.FV; + case TailorMadeAssessmentResultType.Sufficient: + return TailorMadeCalculationResult.V; + case TailorMadeAssessmentResultType.Insufficient: + return TailorMadeCalculationResult.VN; + case TailorMadeAssessmentResultType.NotAssessed: + return TailorMadeCalculationResult.NGO; + default: + throw new NotSupportedException(); + } + } + + /// /// Creates based on the given parameters. /// /// The tailor made assessment result to create Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs =================================================================== diff -u -rb2c5659b0656ae32b98944b07d43ae26e377188c -rff7d35236a40e27f08a25a0d39a958ba9d22331f --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision b2c5659b0656ae32b98944b07d43ae26e377188c) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision ff7d35236a40e27f08a25a0d39a958ba9d22331f) @@ -300,7 +300,7 @@ Assert.AreEqual(result.ResultVtoVI, GetDetailedCalculationResult(detailedAssessmentResultForFactorizedLowerLimitNorm)); } - [Test] + [Test] public void CreateDetailedCalculationResult_InvalidEnumInput_ThrowInvalidEnumArgumentException() { // Call @@ -832,6 +832,51 @@ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); } + [Test] + public void CreateTailorMadeCalculationResult_InvalidEnumInput_ThrowInvalidEnumArgumentException() + { + // Call + TestDelegate test = () => FailureMechanismSectionAssemblyCalculatorInputCreator.CreateTailorMadeCalculationResult((TailorMadeAssessmentResultType) 99); + + // Assert + string expectedMessage = $"The value of argument 'tailorMadeAssessmentResult' (99) is invalid for Enum type '{nameof(TailorMadeAssessmentResultType)}'."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); + } + + [Test] + [TestCase(TailorMadeAssessmentResultType.None)] + [TestCase(TailorMadeAssessmentResultType.ProbabilityNegligible)] + [TestCase(TailorMadeAssessmentResultType.Insufficient)] + [TestCase(TailorMadeAssessmentResultType.Sufficient)] + [TestCase(TailorMadeAssessmentResultType.NotAssessed)] + public void CreateTailorMadeCalculationResult_ValidInput_ReturnsTailorMadeCalculationResult(TailorMadeAssessmentResultType detailedAssessmentResult) + { + // Call + TailorMadeCalculationResult result = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateTailorMadeCalculationResult(detailedAssessmentResult); + + // Assert + Assert.AreEqual(result, GetTailorMadeCalculationResult(detailedAssessmentResult)); + } + + private static TailorMadeCalculationResult GetTailorMadeCalculationResult(TailorMadeAssessmentResultType detailedAssessmentResult) + { + switch (detailedAssessmentResult) + { + case TailorMadeAssessmentResultType.None: + return TailorMadeCalculationResult.None; + case TailorMadeAssessmentResultType.ProbabilityNegligible: + return TailorMadeCalculationResult.FV; + case TailorMadeAssessmentResultType.Sufficient: + return TailorMadeCalculationResult.V; + case TailorMadeAssessmentResultType.Insufficient: + return TailorMadeCalculationResult.VN; + case TailorMadeAssessmentResultType.NotAssessed: + return TailorMadeCalculationResult.NGO; + default: + throw new NotSupportedException(); + } + } + #endregion } } \ No newline at end of file